1

C#.netアプリケーションでIsolatedStorageテクノロジーを使用しています。

My Applicationは、データを閉じるときに、分離されたストレージのMyData.datというファイルに保存します。

アプリケーションを開くと、そのデータが再読み込みされ、画面に印刷されます。

アプリケーションを別のディレクトリ(たとえば、D:\ MyApp.exeからD:\ Apps \ MyApp.exe)に移動し、その新しいディレクトリからアプリケーションを実行すると、ファイルMyData.dat(FileNotFoundException)の読み込みに失敗します。別の場所で別のMyData.datファイルを探しています。

誰かが私の隔離されたファイルを保存する方法を知っていますか?私のApp.exeを開いた場所に関係なくそれが見つかる場所にMyData.datファイルがありますか?

4

4 に答える 4

1

どちらの場合も、取得したIsolatedStorageのディレクトリを確認してください。マシンが同じであっても 、同じアプリケーションで異なる場所にある場合、予想されるストレージパスが異なる可能性があります。

分離ストレージパスを取得する

于 2012-03-13T19:47:38.160 に答える
0

IsolatedStorageFile.GetUserStoreForAssemblyアセンブリIDが変更されていない限り、使用できるストアを取得するために使用 できます。したがって、exeファイルの場所にも依存しません。MSDNの記事を参照してください

于 2012-03-13T20:01:02.987 に答える
0

アセンブリ情報が何らかの形で変更されたと思います。たとえば、exeを移動する前はバージョン1.0.0.0でしたが、別のディレクトリに別のバージョン1.0.0.1を配置しました。この場合、これら2つの異なるバージョンの分離ストレージの場所(別の回答を参照)に2つの別個のディレクトリが必要です。

または、最初にVS内でデバッグモードでアプリを実行してから、exeを移動して直接実行することもできます。この場合、yourappnameyourappname.vschostのような2つの異なるディレクトリが必要です。

とにかく、より多くの情報を得るためにあなたの隔離された保管場所を調べてください。

于 2012-03-14T04:31:46.530 に答える
0

自分で試してみたところ、アプリケーションを別のフォルダーに移動すると、IsolatedStorageFileインスタンスのAssemblyIdentityが変わることに気付きました。

これを防ぐには、アセンブリに署名する必要があります。そうしないと、アプリケーションを別のフォルダーに移動しても、分離された保存ファイルに同じ場所を使用できます。

于 2017-01-11T14:19:42.037 に答える