卸载问题

时间:2011-03-18 15:32:07

标签: wix

安装程序后,安装完成后立即触发(由安装程序)。但是当我从控制面板卸载程序时,它也会尝试打开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>

我想要的是,安装程序只会在安装时尝试运行程序,并且在处理卸载时不执行任何操作。

提前致谢!

1 个答案:

答案 0 :(得分:4)

你的问题是你没有动作的条件所以它每次都会发射。您至少需要一个“未安装”的条件。但是,对于更优雅的解决方案,请阅读:

How To: Run the Installed Application After Setup