アプリケーションを移動するときに絶縁されたストレージファイルを開くことができません

StackOverflow https://stackoverflow.com//questions/9690664

質問

私は私の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が変化することに気づいた。

これを防ぐためには、アセンブリに署名していて、その後、アプリケーションを別のフォルダに移動しても、絶縁された記憶領域の同じ場所を使用することもできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top