アプリケーションを移動するときに絶縁されたストレージファイルを開くことができません
-
13-12-2019 - |
質問
私は私のC#.NETアプリケーションで独自のストレージテクノロジを使用しています。
マイアプリケーションは、絶縁ストレージでmydata.datというファイルの閉じるデータを保存します。
アプリケーションを開くと、そのデータをリロードして画面に印刷します。
アプリケーションを別のディレクトリに移動するときは、たとえばD:\ myapp.exeからd:\ apps \ myapp.exeの新しいディレクトリからアプリケーションを実行してから、ファイルmyData.datのロードに失敗しました(FileTfoundException)異なる場所で別のmydata.datファイルを探しているので。
誰かが私の分離ファイルを保存する方法を知っていますか - mydata.datファイル私のapp.exeを開く場所でそれが見つけるでしょうか?
解決
両方の場合において、のディレクトリのディレクトリを確認してください。マシンが同じであっても、が推定されたストレージパスは異なる場所で同じアプリケーションで異なる可能性があります。
他のヒント
あなたの組立情報は何らかの方法で変わったと思います。たとえば、EXEを動かす前に、バージョン1.0.0.0と別のディレクトリで、異なるバージョン1.0.0.1を入力しました。この場合、これら2つの異なるバージョンについては、分離レートストレージの場所(別の回答を参照)に2つの別々のディレクトリがあるはずです。
またはVS内のデバッグモードでアプリを初めて実行してから、EXEを移動して直接実行することが可能です。この場合、 yourappname と yourappname.vschost のような2つの異なるディレクトリがあるはずです。
とにかく孤立した保管場所を調べて、より多くの情報を得る。
Assmbly Identityが変更されていない限り、IsolatedStorageFile.GetUserStoreForAssembly
を使用して使用できるストアを取得できます。そのため、EXEファイルの場所からも独立しています。 msdn記事
私は自分で試してみました、そして私はあなたが別のフォルダにアプリケーションを移動するときに、InciredStorageFileのインスタンスのAssimentIdentityが変化することに気づいた。
これを防ぐためには、アセンブリに署名していて、その後、アプリケーションを別のフォルダに移動しても、絶縁された記憶領域の同じ場所を使用することもできます。