回答:
選択した設定が「ユーザー」スコープか「アプリケーション」スコープかによって異なります。
ユーザースコープの設定は次の場所に保存されます
C:\ Documents and Settings \ username \ Local Settings \ Application Data \ ApplicationName
実行時にそれらを読み書きできます。
VistaおよびWindows 7の場合、フォルダーは
C:\ Users \ username \ AppData \ Local \ ApplicationName
または
C:\ Users \ username \ AppData \ Roaming \ ApplicationName
アプリケーションスコープ設定はに保存されAppName.exe.config
、実行時に読み取り専用になります。
プログラムでuser.configファイルの場所を取得するために使用できるスニペットを次に示します。
public static string GetDefaultExeConfigPath(ConfigurationUserLevel userLevel)
{
try
{
var UserConfig = ConfigurationManager.OpenExeConfiguration(userLevel);
return UserConfig.FilePath;
}
catch (ConfigurationException e)
{
return e.Filename;
}
}
ApplicationSettings(つまり、settings.settings)は、デフォルトでユーザー設定にPerUserRoamingAndLocalを使用します(覚えています)。
更新:奇妙ですが、ここでは間違った答えが多すぎます。ユーザースコープの設定ファイル(user.config)を探している場合は、次のフォルダー(Windows XPの場合)にあります。
C:\ Documents and Settings \(username)\ Local Settings \ Application Data \(company-name-if-exists)\(app-name).exe_(Url | StrongName)_(hash)\(app-version)\
URLまたはStrongNameは、アプリケーションアセンブリの厳密な名前かどうかに依存します。
Webアプリケーションではなくデスクトップについて話していると仮定します。
プロジェクトに設定を追加すると、VSはapp.config
プロジェクトディレクトリに名前が付けられたファイルを作成し、そのファイルに設定を保存します。またSettings.cs
、個々の設定への静的アクセサーを提供するファイルも作成します。
コンパイル時に、VSは(デフォルトではこれを変更できます)をapp.config
ビルドディレクトリにコピーし、実行可能ファイルと一致するようにその名前を変更します(たとえば、実行可能ファイルがという名前のfoo.exe
場合、ファイルはfoo.exe.config
)。 NET構成マネージャーは、実行時に設定を取得するときに検索します。
VS設定エディターで設定を変更するapp.config
と、およびの両方が更新されSettings.cs
ます。(で生成されたコードのプロパティアクセサーをSettings.cs
見ると、app.config
ファイルにある設定のデフォルト値を含む属性でマークされていることがわかります。)app.config
ファイルを直接編集して設定を変更した場合、Settings.cs
更新されませんが、新しい値は実行時にプログラムによって使用されます。コンパイル時にapp.config
コピーさfoo.exe.config
れるためです。これをオフにすると(ファイルのプロパティを設定して)、直接編集して設定を変更できます。foo.exe.config
ビルドディレクトリ内のファイルをます。
次に、ユーザースコープの設定があります。
アプリケーションスコープの設定は読み取り専用です。プログラムは、ユーザースコープの設定を変更および保存できるため、各ユーザーが自分の設定を持つことができます。これらの設定はfoo.exe.config
ファイルに保存されません(Vistaでは少なくとも、プログラムはサブディレクトリに書き込むことができないため)Program Files
昇格なしの)。これらは、ユーザーのアプリケーションデータディレクトリの構成ファイルに保存されます。
そのファイルへのパスは%appdata%\%publisher_name%\%program_name%\%version%\user.config
、例えばC:\Users\My Name\AppData\Local\My_Company\My_Program.exe\1.0.0\user.config
です。プログラムに厳密な名前を付けた場合は、このパスのプログラム名に厳密な名前が追加されます。
フォルダ名のハッシュについて理解するためにブラウジングしているときに、私は(この回答を介して)出会いました:
http://blogs.msdn.com/b/rprabhu/archive/2005/06/29/433979.aspx
(編集:Wayback Machineリンク:https : //web.archive.org/web/20160307233557/http ://blogs.msdn.com:80/b/rprabhu/archive/2005/06/29/ 433979.aspx)
user.config
ファイルの正確なパスは次のようになります。
<Profile Directory>\<Company Name>\<App Name>_<Evidence Type>_<Evidence Hash>\<Version>\user.config
どこ
<Profile Directory>
-移動プロファイルディレクトリまたはローカルディレクトリです。設定はデフォルトでローカルuser.config
ファイルに保存されます。ローミングに設定を保存するにはuser.config
、ファイル、あなたが設定をマークする必要があるSettingsManageabilityAttribute
とSettingsManageability
のセットRoaming
。
<Company Name>
-通常、AssemblyCompanyAttribute
文字列です(文字列はエスケープされ、必要に応じて切り捨てられることに注意してください。アセンブリで指定されていない場合、フォールバック手順があります)。
<App Name>
-通常、AssemblyProductAttribute
(会社名と同じ注意事項)。
<Evidence Type>
そして<Evidence Hash>
-アプリドメインの証拠から導き出された、適切なアプリドメインとアセンブリの分離を提供する情報。
<Version>
-通常、で指定されたバージョンAssemblyVersionAttribute
。これは、並べてデプロイされたアプリの異なるバージョンを分離するために必要です。ファイル名は常に「
user.config
」です。
これは、ユーザーのホームフォルダーのApplication Dataフォルダー(xpの場合はC:\ documents and settings \ user、Windows Vistaの場合はc:\ users \ user)にあるアプリケーション名のフォルダーにあります。
PS:-実行ボックスで%appdata%でアクセスしてみてください!
すべての設定は、それぞれの.configファイルに保存されます。
.settingsファイルは、属している一連の設定に対して厳密に型指定されたクラスを提供するだけですが、実際の設定はapp.configまたは.configファイルに保存されています。
.settingsファイルを追加すると、設定がない場合はapp.configが自動的に追加され、設定が格納されます。
設定ファイルがWebアプリにある場合は、web.configファイルにあります(プロジェクトの真下。他のタイプのプロジェクトにある場合は、app.configファイルにあります(これもプロジェクトの下にあります)。 。
編集する
コメントで指摘されているように、デザイン時のアプリケーション設定は、Webアプリケーション以外のアプリケーションのapp.configファイルにあります。ビルドすると、app.configファイルが出力ディレクトリにコピーされ、yourexename .exe.config という名前が付けられます。実行時には、yourexename.exe.configという名前のファイルのみが読み取られます。
2つのファイル:1)app.configまたはweb.configファイル。彼女の設定は、ビルド後にテキストエディターでカスタマイズできます。2)settings.designer.csファイル。このファイルには、設定ファイルから設定をロードするための自動生成コードがありますが、設定ファイルに特定の設定がない場合のデフォルト値も存在します。
既に回答済みですが、設定デザイナーの設定を同期してデフォルト設定に戻すことはできませんか?