1

既存の設定値を上書きせずに、既存のアプリケーションの app.config ファイルを更新して新しいアプリ設定を含めるためのベスト プラクティスを理解しようとしています。

最初から、Visual Studio セットアップ プロジェクトによって MSI に組み込まれるプロジェクトがあり、その MSI を使用してアプリケーションをインストールします。このアプリケーションは、おそらく 1000 以上の場所に既にインストールされています。現在、新しいバージョンのアプリケーションには、Web サービス エンドポイントを定義するための新しいアプリ設定があります。ただし、セットアップ プロジェクトは新しい設定で新しい app.config をデプロイしません。セットアップ プロジェクトはそのような馬鹿げたものであり、app.config がまだ存在しない場合、または既存の設定がある場合にのみインストールするためです。ユーザー定義の構成を上書きしないように、作成日と変更日を一致させます。

app.config を上書きできないので、app.config の変更を別の XML ファイルとして展開し、アプリケーションの起動時にこの別の XML ファイルをロードして、すべての設定をそれを実際の app.config ファイルの内容と比較し、不足しているものはすべて app.config ファイルに保存します。

しかし、外部 XML ファイルから構成を読み込んで app.config にコピーする際に問題が発生しています。どうすればこれを行うことができますか?app.config ファイルの更新を管理するための他の良い方法はありますか? ベストプラクティスとは?

私は Java の方がよく知っています。これは、プロパティ ファイルを使用する場合は非常に簡単ですが、.NET 構成ファイルを使用する場合はそれほど単純ではないようです。

4

2 に答える 2

1

私の知る限り、すぐに使える方法はありません。

これを行うには、ファイルをXDocumentに解析してから、doc.Element( "settingName")がnullかどうかを確認します。存在する場合、その設定は存在せず、デフォルト値を追加できます。ノードが存在する場合、ユーザーはカスタム設定を定義しています。

于 2013-01-28T17:58:56.820 に答える