2016-11-08 50 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开发平台