0

VS2013 VB.NET WinForms 프로젝트에서 런타임에 읽고 쓰게 될 배포 된 응용 프로그램에 XML 파일을 포함해야합니다.VB.NET 프로젝트에 XML 파일 포함 및 참조

파일을 포함 된 리소스로 가지고 있으며 출력용으로 "항상 복사"를 선택했습니다. 파일 이름은 "Settings.xml"이고 자원 이름은 설정입니다.

Private xmlFile as XmlDocument ' In the general declaration area, before the Load event 
xmlFile.LoadXml(My.Resources.Settings) ' In the Load event, in a Try/Catch 

그러나 나는 두 번째 줄에 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다"얻을 :

this 예를 보면 나는 내 코드에서 참조하려면 다음을했다. 나는 이런 식으로 뭔가를 사용하는 XML 액세스에 대한 계획 코드에서

:

Dim xmlDoc as New XmlDocument 
xmlDoc = xmlFile 

내가 작동하지 않았다 xmlDoc.Save(xmlFile) 같은 초기 시도로, 나는 변경 사항을 저장 아직 방법을 잘 모르겠어요 .

무엇이 누락 되었습니까? 모든

+0

로드하는 것이 단 한 건의 제안입니다. – Plutonix

+0

으로 시작하는 다른 곳에서 파일을 만들 수도있는 컴파일 된 리소스로 다시 저장할 수 없습니다. 왜 'My.Settings'로 충분하지 않은지 궁금합니다. 바퀴를 재발견 할 좋은 이유가 있다면 왜 XML 파일 대 XML XML로 처리해야합니까? – Plutonix

답변

0

첫째, 당신은 xmlFile의 생성자를 사용해야합니다

다음
Private xmlFile As New XmlDocument 

, 당신이해야 할 모든 자원 이름, 즉 "Settings.XML의"를 사용하는 리소스가 포함되어있는 경우 :

xmlFile.LoadXml("Settings.xml") 

리소스를 "CopyAlways"로 설정하지 않아도됩니다.

+0

고마워, roryap,하지만 그 시도하고 같은 오류가 발생했습니다 (개체 참조 ...). – marky

+0

@marky - 내가 생성자에 대해 말한 것에 유의하십시오. –

+0

좋아요, 당신이 거기에 "New"가 있다는 것을 보았습니다. 그래서 나는 덧붙였습니다. 그러나 이제는이 오류가 발생합니다 : "루트 레벨의 데이터가 유효하지 않습니다 .1 행, 위치 1" 이것이 내 XML 파일의 첫 번째 라인을 가리키고 있다면 표준 doctype 선언으로 시작합니다 :'>' – marky