2016-11-03 3 views
-1

내 응용 프로그램의 설정 폴더에서 파일을 찾으려고합니다. 거기에 xml 파일이 있습니다. 나는 다음과 같은 코드를 실행하면 :내 파일 디렉토리에 '/ bin'이 포함되어있는 이유는 무엇입니까?

XDocument xDoc = XDocument.Load(@"..\settings\Settings.xml");

을 나는 DirectoryNotFoundException을 얻고 예외 대신 위의, \bin\settings\Settings.xml'.에서 발견되지 말합니다. 심지어 전체 루트 디렉토리를 시도하여 C://... 문제를 확인했지만 여전히 bin 폴더가 포함되어 있습니까?

bin 부분을 포함하지 않으려면 어떻게해야합니까?

+0

그럼 앱을 어떻게 운영하고 계십니까? 앱의 디렉토리 *는 무엇입니까? 현재 우리는 상황이 거의 없습니다. –

+3

응용 프로그램은 "\ bin \ debug \"에서 실행됩니다. ".."는 처음에는 "\ bin \ settings"디렉토리로 이동합니다. 그래서 당신은 올바른 디렉토리에서 그것을 실행하거나 다른 ".. \"을 (개발 중에) 경로에 추가하십시오. –

답변

2

기본적으로 Visual Studio의 빌드 결과는 bin\Debug과 같은 폴더에 저장됩니다. 하나의 폴더를 점프하는 상대 경로를 사용하기 때문에 yourProjectFolder\bin\settings\Settings.xml이됩니다. 이 파일은 존재하지 않습니다. 왜냐하면 아마도 프로젝트 폴더에 있고 bin 폴더가 아니기 때문입니다.

이 문제를 해결하는 일반적인 방법은 콘텐츠에 포함될 것으로 예상되는 파일에 실제로 빌드 작업이 콘텐츠로 설정되어 있는지 확인하는 것입니다.

뿌리 째 경로를 사용하면 분명히 작동합니다. 대부분 실수 일 가능성이 높습니다. 경로가 전혀 루팅되지 않았거나 경로를 파일 경로가 아닌 URI로 해석하는 것과 같은 일을합니다. XDocument.Load은 파일 경로가 아닌 URI를 사용합니다. 파일 시스템의 절대 경로를 참조하는 적절한 방법은 file://C:/ThePath/Settings/Settings.xml입니다.

+0

누군가가 어플 리케이션을 만들지 않을만큼 바보라면, 당신이하지 말아야합니다. 이것은 빌드를 다시 시작한 후에 정답 "빌드로 설정된 컨텐츠"가 어쨌든 작동했습니다 ... – FakeCaleb

관련 문제