【问题标题】:WiX Executing an Application UnconditionallyWiX 无条件执行应用程序
【发布时间】:2010-08-13 20:12:00
【问题描述】:

大家好。

我的问题是双重的。我有一个我一直在处理的 WiX 项目,并且我的任务是让它执行程序执行,无论用户是否按下取消、安装被中止(通过现有版本)或用户成功完成安装。

我目前使用的是内置的diaglog系统:

    <UIRef Id="WixUI_InstallDir" />

我目前在安装完成后执行应用程序非常成功。困难在于应用程序位于安装程序的同一位置,我不能保证会在哪里。所以我在安装成功后使用以下方法执行程序:

<InstallExecuteSequence>
  <Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWPRODUCTFOUND</Custom>
  <RemoveExistingProducts After="InstallInitialize" />
  <Custom Action="PropertyAssign"  Before="InstallFinalize">NOT Installed</Custom>
  <Custom Action="LaunchFile" After="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>


    <CustomAction Id='PropertyAssign' Property='PathProperty' Value='[SourceDir][DRIVEREXEC]' />
    <CustomAction Id="LaunchFile" Property="PathProperty" ExeCommand='/S' Return="asyncNoWait" />

这两个自定义操作用于在安装完成后执行应用程序。因此,当程序存在时,我无法分配两个自定义操作。当两个自定义操作具有相同的设置时,OnExit="error" 会引发异常。

如何无条件地执行一个应用程序,位置未知——但假定在安装程序的同一目录中?

感谢大家的宝贵时间和热情的回复

【问题讨论】:

    标签: windows installation wix custom-action


    【解决方案1】:

    您可以查看有关如何在安装后运行应用程序的 WiX 文档:http://wix.sourceforge.net/manual-wix3/run_program_after_install.htm。这将为您提供指向 WiX UI 对话框集的指针,您可以在必要时对其进行调整。

    此外,SourceDir 使用起来非常棘手:http://robmensching.com/blog/posts/2010/1/26/StackOverflow-what-does-NameSourceDir-refer-to。理想情况下,您应该启动已安装的应用程序,而不是从媒体启动。

    【讨论】:

    • 罗布,谢谢您的回复。我处于不幸的位置,我需要使用一个或多个“可能”与媒体一起打包的可执行文件。如果它们是,我必须运行它们。为了解决这个问题,我在完成时使用了 SourceDir,以及一个设置我所在位置的参数。我的结局是在取消、中止等情况下——仍然会触发可执行文件。您的建议提到如何让复选框出现在任何情况下(中止 - 等),但它没有告诉我如何告诉安装程序它在哪里。很抱歉,我对此很陌生,我可能错过了。
    • 我没有关注你问题的这一部分,“但它没有告诉我如何告诉安装程序它在哪里”。你能澄清一下吗?
    • 抱歉耽搁了,非常感谢您花在我身上的所有帮助和时间。在某种程度上,我需要安装程序具有自我意识(关于它的位置)。安装程序需要知道它在磁盘上的位置。这就是我使用 SourceDir 的原因。 (安装程序说)我知道我位于 c:\temp\install,现在从 c:\temp\install 执行 installer2。另一方面,如果有人移动了安装程序,比如说 c:\place,我希望安装程序转过来并尝试从 c:\place 执行 installer2。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多