2

既存のインストール済み製品に対して新規インストールを実行すると、インストーラーは非 EXE および DLL ファイルを上書きしません。EXE と DLL の場合、ファイルを置き換えるかどうかを定義するバージョン番号を設定できます。ただし、これはプレーン テキストを含む構成ファイルでは不可能です。

インストーラーにすべてのファイルを強制的に置き換える方法はありますか?

orに設定DetectNewInstalledVersionしても効果はありません。TrueFalse

RemovePreviousVersions真に設定されています

4

1 に答える 1

0

Windows インストーラーのファイル置換規則では、ユーザーが変更したファイルを置換することはできません。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370531(v=vs.85).aspx

基本的な問題は、製品がデータベース ファイルをインストールし、データを入力してから、製品のアップグレードで破棄することを本当に望んでいないことです。

これはおそらく起こっていることです。次のようなコマンドでアップグレードをログに記録する場合:

msiexec /I [MSI をアップグレードするパス] /l*vx [テキスト ログ ファイルへのパス]

次に、ファイル名を検索すると、置き換えられなかった理由がわかります。

もう 1 つの可能性は、ファイルが MSI ファイルのコンポーネント テーブルで NeverOverwrite としてマークされていることです。Visual Studio セットアップは IDE でこれをサポートしていないため、これはあなたのケースではありそうにありません。これは、インストール後にコンポーネントに適用され、元に戻すことはできません。これはシステム設定であり、MSI 設定ではありません。

于 2016-12-14T18:26:32.367 に答える