ユーザーレベルの設定にカスタム構成セクションを使用するアプリケーションがあります。設定ファイルのデフォルトのようにプロジェクトごとに設定するのではなく、プログラムの単一の app.config に設定を一元化できるように、設定ファイルを使用する代わりにこの方法で行われます。
問題は、これらのカスタム設定がユーザーごとに構成可能であり、ユーザーがソフトウェアをアップグレードすると失われることです (新しいビルド バージョン用の新しいフォルダーが作成され、古いフォルダーは使用されなくなります)。したがって、更新時、またはアップグレード後のユーザーごとのアプリケーションの最初の実行時に、これらの設定を移行する方法が必要です。Settings.Upgrade()に関する情報を見てきました、ただし、構成の設定ファイルセクションでのみ機能します。ConfigurationSection (カスタム設定クラス/セクションの派生元) のドキュメントを調べましたが、役立つものはないようです。OpenExeConfiguration のオーバーロードは実行可能ファイルとユーザー レベルの両方の指定をサポートしていないため、ConfigurationManager を使用してインストーラーからユーザー設定を取得して移行することは行き止まりのようです。
ヒントはありますか?保存されている情報は重要ではありませんが (ほとんどの場合、ウィンドウのジオメトリとレイアウトの設定が記憶されています)、アプリがアップグレードされるたびに失われるのは煩わしい場合があります。私が考えることができる唯一のことは、これらの設定の構成メカニズムを完全に放棄し、これらの設定をユーザーの AppData (他のいくつかのユーザー固有のファイルを保存する場所) のバージョンに依存しないファイルに保存するための独自のモデルを実装することです。app.config ラッパーを放棄することで多くを失うため、これを最後の選択肢にしたいと思います。