2016-11-08 11 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 を変更する必要があります。

おかげで、 ステファンウィック - Windowsの開発プラットフォーム

関連する問題