3

アプリケーションをセットアップするMSIがあります。単一のコンポーネントがあり、%PROGRAMFILES%にのみインストールされます(共有バイナリはありません)。簡略化すると、次のようになります

Msi file, Monday build:
    Program.exe  (v1.0.0)
    ThirdPartyLibrary.dll  (v2.0.1)

これで、ThirdPartyLibrary dllをv2.0.0からv2.0.1にアップグレードしたためにプログラムにバグが見つかり、参照をv2.0.0に戻した場合、MSIがファイルを自動的に置き換えないようです。インストールディレクトリ?

Msi file, Tuesday build:
    Program.exe  (v1.0.0)
    ThirdPartyLibrary.dll  (v2.0)  <- downgraded

プログラムフォルダにセットアップ内のバイナリが常に正確に含まれるようにするためのここでのベストプラクティスは何ですか?a)新しいファイルをコピーする前に、セットアップディレクトリからすべてを消去する必要がありますか?バージョンに関係なく、msiがすべてのファイルを強制的に上書きするようにするオプション(Wix)はありますか?

セットアップからファイル(実行時に存在するとエラーが発生するファイル)を削除した場合、セットアップ後にプログラムを機能させる唯一の方法は、最初にすべてのファイルを削除した場合です。

4

1 に答える 1

1

msi トリックを使用できます。msi データベースのファイル テーブルで、[バージョン] 列を編集し、より高いバージョン (3.0 など) を入力します。このようにして、ファイルのバージョン管理規則を利用できます。

于 2013-01-02T16:18:50.157 に答える