app.configファイルの一部の設定を管理するための小さなGUIを作成しました。 GUIは製品の一部としてリリースされ、app.configファイルの値をテキストエディタで開くことなく変更することができます。app.configのconfigSectionでバージョン固有の情報を避ける
プロパティは、カスタムconfigSectionに実装されており、コードに強く型付けされています。
<section name="ConfigurationSettings" type="PerformanceDude.MSBuildShellExtension.Common.ConfigurationSettings, Common, Version=2.2.1.0, Culture=neutral, PublicKeyToken=1ab1b15115e63xxx" />
私はこのアセンブリをアップグレード:私の問題は、(私はGUIから保存するとき)app.configファイルが更新されたとき、私のアセンブリの完全修飾名は、このようなconfigSectionに書かれていること、です新しいバージョン番号であり、GUIコードアセンブリバージョンはapp.config内のアセンブリ参照と一致しません。
これは私が設定をロードする方法である:
var config = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap() { ExeConfigFilename = ConfigFilePath }, ConfigurationUserLevel.None);
var settings = Config.GetSection("ConfigurationSettings") as ConfigurationSettings;
これは私が設定を保存する方法である:
config.Save(ConfigurationSaveMode.Minimal, true);
私は更新バージョンの毎回の変更アップグレードスクリプトを記述する必要はありません。誰もがこの問題の素晴らしい解決策を知っていますか?
設定をシリアル化して保存するコードを含めることは可能ですか? – dash
ロードとセーブコードの説明は次のようになりました:) – ThomasArdal
解決方法を見つけましたか? – Zoomzoom