2016-11-08 1 views
1

아래 코드를 사용하는이 작은 WPF 응용 프로그램이 있습니다. 기본적으로 콘텐츠를 표시하기 위해 상기 파일을 읽습니다.StreamReader 코드가 DesktopBridge APP로 변환 된 후 예외가 발생합니다.

using (StreamReader streamReader = new StreamReader(@"Terms\License.txt", Encoding.UTF8))   { 
.... 
} 

이 코드는 WPF 응용 프로그램에서 올바르게 작동합니다. 하지만 ... DesktopBridge를 사용하여 WPF를 Appx로 변환 한 다음 .Appx를 설치했습니다. 동일한 코드에서 예외가 발생합니다.

예외 정보 : System.IO.DirectoryNotFoundException.

실마리가 있습니까? 어떤 지원?

감사

+1

글쎄, 당신의 코드가있는 Environment.CurrentDirectory에 따라 달라집니다. 절대 경로를 사용하십시오. – JeffRSon

+1

상대 경로를 사용 중입니다. 'using' 행에 중단 점을 넣고 작업 디렉토리 경로를 확인할 수 있습니다. 그런 다음이 폴더에'@ "Terms \ License.txt"'https://msdn.microsoft.com/en-us/library/system.io.directory.getcurrentdirectory(v=vs.110)가 있는지 확인할 수 있습니다. aspx – Mat

+0

.appx로 변환 된 후에는 디버깅을 할 수 없습니다. 둘째, 디버깅 및 런타임 중에는 WPF ExE만큼 완벽하게 작동합니다. WPF EXE가 외부 유틸리티 DesktopBridge를 사용하여 .APPX로 변환 된 후에이 오류가 발생합니다. 상대 경로를 사용하는 모든 이유는 절대 경로가 걱정되지 않기 때문입니다. – Neha

답변

0

MSDN에 데스크톱 브리지 애플 리케이션을위한 준비 가이드를 참조하고 응용 프로그램에 대한 적절한 호환 코드를 변경하시기 바랍니다 :

https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-prepare

앱은 현재 작업 디렉토리를 사용합니다. 런타임에 변환 된 응용 프로그램은 바탕 화면 .LNK 바로 가기에 이전에 으로 지정된 동일한 작업 디렉토리를 가져 오지 않습니다. 응용 프로그램이 올바르게 작동하려면 올바른 디렉토리가 중요한 경우 런타임시 CWD 을 변경해야합니다.

감사합니다, 스테판 윅 - 윈도우 개발자 플랫폼

관련 문제