カスタムアクションでこれを行うことができます。以下のカスタム アクションに参照を追加できます<InstallExecuteSequence>
。
<InstallExecuteSequence>
...
<Custom Action="FileCleaner" After='InstallFinalize'>
Installed AND NOT UPGRADINGPRODUCTCODE</Custom>
次に、以下でアクションを定義する必要もあります<Product>
。
<Product>
...
<CustomAction Id='FileCleaner' BinaryKey='FileCleanerEXE'
ExeCommand='' Return='asyncNoWait' />
FileCleanerEXE はバイナリ (私の場合は、カスタム アクションを実行する小さな C++ プログラム) であり、以下でも定義されてい<Product>
ます。
<Product>
...
<Binary Id="FileCleanerEXE" SourceFile="path\to\fileCleaner.exe" />
これに対する本当の秘訣はInstalled AND NOT UPGRADINGPRODUCTCODE
、カスタム アクションの条件です。アクションはアップグレードごとに実行されます (アップグレードは実際にはアンインストールしてから再インストールするため)。ファイルを削除している場合、アップグレード中にはおそらく望ましくありません。
余談ですが、バッチスクリプトの代わりにC++プログラムのようなものを使用してアクションを実行することをお勧めします。これは、バッチスクリプトが提供するパワーと制御のためです-そして、「cmdプロンプト」ウィンドウが点滅するのを防ぐことができますインストーラーが実行されます。