[解決済み] .netで異なるアセンブリのバージョン間でuser.configの設定を維持するにはどうすればよいですか?
2022-04-27 18:09:17
質問
基本的に問題は、アセンブリのバージョンが変わる(つまり、ユーザーがアプリケーションの新しいバージョンをインストールする)たびに、すべての設定がデフォルトにリセットされることです(より正確には、異なるバージョン番号を名前とするフォルダに新しい user.config ファイルが作成される)。
iniファイルやレジストリの使用は推奨されていないようですが、バージョンアップの際に同じ設定を維持するにはどうしたらよいでしょうか?
Clickonceを使ったときは対応できたようなので、できそうな気がするのですが、どうなんでしょう。
解決方法は?
ApplicationSettingsBaseには というメソッドがあり、Upgrade これは、以前のバージョンからすべての設定を移行するものです。
アプリケーションの新バージョンを公開するたびにマージを実行するには、設定ファイルにデフォルトが true のブーリアン・フラグを定義することができます。このフラグの名前は アップグレードの必要性 のようなものです。
そして、アプリケーションの起動時にこのフラグが設定されているかどうかを確認し、設定されている場合は アップグレードメソッド フラグを false に設定し、設定を保存します。
if (Settings.Default.UpgradeRequired)
{
Settings.Default.Upgrade();
Settings.Default.UpgradeRequired = false;
Settings.Default.Save();
}
Upgradeメソッドの詳細については、以下を参照してください。 MSDN . その 前のバージョンを取得する また、カスタムマージを行う必要がある場合は、一見の価値があるかもしれません。
関連
-
[解決済み】プラットフォームが同じでも「不正なフォーマットでプログラムを読み込もうとしました。
-
[解決済み】コンパイラーエラーメッセージ。コンパイラはエラーコード -532462766 で失敗しました。
-
[解決済み】警告。同じ依存アセンブリの異なるバージョン間で競合が見つかりました。
-
[解決済み] WPFで角丸ボタンを作成する/作るには?
-
[解決済み] gacutil.exeはどこですか?
-
[解決済み] 'Newtonsoft.Json' には 'Microsoft.CSharp' の依存関係がすでに定義されています。
-
[解決済み] Nuget接続の試行に失敗しました。"Unable to load service index for source"。
-
[解決済み] 権限 '*' を持つ SSL/TLS の安全なチャネルを確立できませんでした。
-
[解決済み] 列挙型を文字列に変換する
-
[解決済み] MSB3247 の解決 - 同じ依存アセンブリの異なるバージョン間で競合が見つかりました。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] ファイル *.mdf をデータベースとしてアタッチできない
-
[解決済み] アセンブリから型を読み込めなかったエラー
-
[解決済み] SQL Server Compact EditionデータベースのLINQ to SQLで、"Row not found or changed "例外を解決するにはどうすればよいですか?
-
[解決済み] asp.netでWebサービスのタイムアウト時間を長くする方法は?
-
[解決済み] gacutil.exeはどこですか?
-
[解決済み] WinSCP 応答待ちタイムアウト
-
[解決済み] Nuget接続の試行に失敗しました。"Unable to load service index for source"。
-
[解決済み] Moq Callbackについて教えてください。
-
[解決済み] プライベートメソッドのユニットテストはどのように行うのですか?
-
[解決済み] Math.Round(2.5)はなぜ3でなく2を返すのですか?