您可以使用自定义操作来完成此操作。您可以在下面的自定义操作中添加参考。<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提示”窗口闪烁。