[解決済み] app.configが作成されるタイミングとapp.exe.configが作成されるタイミング、その違いとは?
質問
WinFormsアプリケーションを作成し、ConfigurationManagerクラスを介していくつかの構成を保存しています。情報を格納するために、私は以下を使用しています。
Configuration pConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
pConfig.AppSettings.Settings.Add("updates", szUpdatesURL);
pConfig.Save(ConfigurationSaveMode.Modified);
ここで問題なのは、あるときはアプリケーションが"appname".configファイルを作成し、別のときは"appname".exe.configを作成することです。
ここで、設定ファイルが常に必要なわけではないので、デフォルトでは出荷されないことに注意しなければなりません。
コンフィギュレーションは、プログラムの初回実行時に保存されます。このため、どのような場合にどちらを作成するのか指定できないという問題がありました。
同じPCで、全く同じ.exeを使ってテストを行いましたが、両方の結果が得られました。ここで何が起こっているのでしょうか?
また、どちらを作成するかは、どのように指定すればよいのでしょうか。 ありがとうございました。
どのように解決するのですか?
アプリケーションをコンパイルすると、"appname.exe.config"が自動的に作成されます。これは、エンドユーザーに配布されるべきファイルです(もちろん、exeファイルと一緒に)。appname.configで設定した内容は、appname.exe.configに引き継がれます。
They are essentially the same files
. appname.configが存在する理由は、実行ファイルを実行したときに、その設定ファイルが実行ファイル名に単純な
.config
というサフィックスがつきます。しかし、実行ファイルの名前が変わった場合、手動でexe.configファイルの名前を変更する必要があります。そこで
コンパイル時
app.configのファイル名をnewappname.exe.configに変更しても、CLRはそれを拾ってくれるのです。appname.exe.configファイルはbinディレクトリに作成されることが分かると思います。
これではっきりしたかな :) 以下のリンクは、もう少し深いところまで説明しているかもしれません。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み] BasicHttpsBindingとWsHttpBinding with Transport securityの違いは何ですか?
-
[解決済み] 権限 '*' を持つ SSL/TLS の安全なチャネルを確立できませんでした。
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] Try-catchは私のコードをスピードアップさせるか?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] .NET Coreと.NET Standard Class Libraryのプロジェクトタイプの違いは何ですか?
-
[解決済み] Visual StudioでWebプロジェクトでないプロジェクトのApp.Config変換は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] データテーブルの並べ替え
-
[解決済み] リファレンスの追加にSystem.Web.Mvcが表示されないのはなぜですか?
-
[解決済み] .Netの配列のLongLengthの目的は何ですか?
-
[解決済み] ネットワークの位置からアセンブリをロードすることはできません
-
[解決済み] このコンピュータには、.NET Framework 4.6またはそれ以降の更新プログラムがすでにインストールされています。
-
[解決済み] 文字列から数字を抽出する正規表現
-
[解決済み] WCFのデバッグ時にサーバーに自動的に踏み込むことができない
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?
-
[解決済み] LINQクエリでToList()とToArray()のどちらを呼び出すのが良いですか?
-
[解決済み] PowerShellで文字列がNULLまたは空であるかどうかを確認するにはどうすればよいですか?