17

My.Settings値はプログラム自体に保存されますか、それともレジストリに保存されますか? たとえば、My.Settingsプログラムで値を設定した場合、そのプログラム自体を別の PC にコピーしますが、My.Settings値はまだ設定されていますか?

4

4 に答える 4

33

選択した範囲によって異なります。スコープ設定には、アプリケーション スコープとユーザー スコープの 2 つがあります。

MSDN の記事から:

アプリケーション スコープの設定は読み取り専用で、そのアプリケーションのすべてのユーザー間で共有されます。これらの設定は、セクションの app.config ファイルに保存されます。実行時に、app.config ファイルは bin フォルダーにあり、アプリケーションの名前 (MySettingsDemo.exe.config) で名前が付けられます。

ユーザー スコープの設定は、ユーザーごとに固有です。これらは、実行時にアプリケーション コードによって安全に読み取られ、設定されます。これらの設定は、user.config ファイルに保存されます。技術的に正確に言うと、アプリケーションごとにユーザーごとに 2 つの user.config があります。1 つは非ローミング用で、もう 1 つはローミング用です。Visual Basic 2005 のドキュメントには、user.config ファイルの名前はユーザー名 (joe.config) に従って付けられると記載されていますが、そうではありません。user.config ファイルは次の場所に作成されます。

<c:\Documents and Settings>\<username>\[LocalSettings\]ApplicationData\<companyname>\<appdomainname>_<eid>_<hash>\<verison>.
于 2012-01-01T04:43:42.997 に答える
10
Dim config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)
MessageBox.Show(config.FilePath)
于 2015-12-02T06:17:24.097 に答える
4

clickonce を使用してアプリケーションをインストールした場合、MySettings は「C:\Users\\AppData\Local\Apps\2.0\Data........」に保存されている構成ファイルに保存されます。

yourapp.exe.config という名前のファイルを使用して、これらのパスを検索します。

問題は、MySettings がそのアプリケーションの app.config ファイルに保存され、app.config ファイルを公開した後、applicationname.exe.config ファイルとして保存されることです。

于 2012-01-01T05:26:41.277 に答える
3

それらがユーザー設定である場合、それらは間違いなくプログラム内に保存されません-それは実装が非常に簡単ではなく、むしろ無意味です. 代わりに、%AppData% フォルダー内の構成ファイルに保存されます。いいえ、プログラムをコピーした場合、ユーザー設定は付属せず、アプリケーション設定のみが付属します。

于 2012-01-01T04:44:45.550 に答える