私は大きな問題を抱えています:
古いアプリケーション App1.0.exe があります。このアプリケーションには、App1.0.exe.config (アプリ構成) というファイルがあります。今、私はバージョン 2.0 を作成しました。新しいバージョンでは、Appconfig にさまざまな Appsettings があります。私の質問は、更新インストールを行うときに古い Appconfig を保存するにはどうすればよいですか?
この問題を解決しようとして失敗しました:
-BeforeInstall イベントで古い構成を読み取り、コンテキスト パラメーターに保存して、Afterinstall イベントで新しい構成を書き込みます。- BeforeInstall は新しい構成を読み取ります (古い構成は削除されます)。- 新しい Appconfig をコピーしないで、新しい appconfig を含む AppConfigUpdate.config などの別の名前のファイルをコピーします。インストール後のイベントで、古い構成を File.Move() で保存します。今、私たちは持っています:
-Appconfig.exe.config_Original
-AppconfigUpdate.config
.config_Original を読み取り、AppConfigUpdate.config にパラメーターを書き込み、これの名前を Appconfig.exe.config に変更するよりも
私の問題は、msi に、RemoveExistingProducts というカスタム アクションを実行した後に実行される標準アクションがあることです。したがって、インストーラーをデバッグすると、customaction の最後に古い構成の .config_original と、古い構成からの正しいパラメーターを含む新しい構成の .config が表示されます。しかし、私のカスタム アクションの後、インストールは .config を削除し、.config_original だけが残ります。
RemoveExistingProducts は、更新パッケージで配信されなかったすべてのファイルを削除すると思います。しかし、元の構成が上書きされ、すべてのパラメーターが失われるため、.config を配信できません。
私は現在、この問題に 3 日以上取り組んでおり、あなたの助けが本当に必要です。この問題を解決する方法のアイデアが不足しています。おそらく、あなたの誰かが同様の問題を抱えていましたか?
私の悪い英語でごめんなさい。よろしくお願いします