安装程序后,安装完成后立即触发(由安装程序)。但是当我从控制面板卸载程序时,它也会尝试打开exe,这会产生以下错误:
Windows无法找到“MyExe.com”。确保正确键入名称,然后重试。要搜索文件,请单击“开始”按钮,然后单击“搜索”。
在后台使用cmd.exe。 按下OK后,弹出另一个窗口,说:
此Windows Installer程序包存在问题。作为设置的一部分运行的程序没有按预期完成。联系您的支持人员......
虽然程序已卸载,但这些错误并不可取。
此外,当我安装较新版本且程序的旧版本已经存在时,我会收到类似消息,因为安装程序会先尝试卸载旧版本。
以下是代码:
....
<Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
<Upgrade Id="D2B0D435-0F86-4D5E-A988-B24215882***">
<UpgradeVersion
Minimum="1.0.0.0" Maximum="99.0.0.0"
Property="PREVIOUSVERSIONSINSTALLED"
IncludeMinimum="yes" IncludeMaximum="no" />
</Upgrade>
<CustomAction Id="LaunchApp" Directory="INSTALLDIR" ExeCommand="[SystemFolder]cmd.exe /C start MyExe.exe" />
<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallInitialize" />
<Custom Action="LaunchApp" After="InstallFinalize" />
</InstallExecuteSequence>
</Product>
</Wix>
我想要的是,安装程序只会在安装时尝试运行程序,并且在处理卸载时不执行任何操作。
提前致谢!
答案 0 :(得分:4)
你的问题是你没有动作的条件所以它每次都会发射。您至少需要一个“未安装”的条件。但是,对于更优雅的解决方案,请阅读: