2016-11-08 55 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

您使用相對路徑。您可以在'使用'行中放置一個斷點並檢查工作目錄路徑。然後,您可以確保此文件夾是否包含'@「Terms \ License.txt」'https://msdn.microsoft.com/zh-CN/library/system.io.directory.getcurrentdirectory(v=vs.110)「。 aspx – Mat

+0

一旦轉換爲.appx,我將無法進行調試。其次,只要它是一個WPF ExE,它在調試和運行時就可以很好地工作。在使用外部實用程序DesktopBridge將WPF EXE轉換爲.APPX後,出現此錯誤。 使用相對路徑的每一個原因是,不要擔心絕對路徑。 – Neha

回答

0

請參閱MSDN上的桌面大橋的應用程序編寫指導並做出相應的兼容的代碼更改應用:

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

你的應用程序使用當前工作目錄。在運行時,您的 已轉換的應用程序將無法獲得與您之前在桌面.LNK快捷方式中指定的 相同的工作目錄。您需要在運行時更改CWD ,前提是正確的目錄對於您的應用程序 正常運行很重要。

感謝, 斯特凡威克 - Windows 8開發平臺