【问题标题】:Install program fails to shutdown running target...workarounds?安装程序无法关闭正在运行的目标...解决方法?
【发布时间】:2014-04-03 23:21:54
【问题描述】:

我有一个 WIX 安装程序。

当我在运行旧版本软件的机器上测试我的安装程序时,我收到以下提示。

问题是安装程序无法关闭应用程序。当新程序运行时,它会抱怨旧程序正在运行。

有没有办法强行杀死应用程序? 如果没有,WIX 中是否有一些条目需要用户关闭应用程序才能继续安装?

【问题讨论】:

    标签: wix windows-installer


    【解决方案1】:

    我在这里找到了答案:

    WiX <util:CloseApplication> element not working

    我对上面帖子中的解决方案进行了调整。我在安装序列的早期终止了应用程序,因此上面的窗口不会出现。

    <!-- Code to force termination of running program...MSIExec couldn't do it -->
    <Property Id="QtExecCmdLine" Value='"[WindowsFolder]\System32\taskkill.exe" /F /IM "$(var.ProductName).exe"'/>
    <CustomAction Id="APP.TaskClose" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="ignore"/>
    <InstallExecuteSequence>
        <Custom Action="APP.TaskClose" After="LaunchConditions"/>
    </InstallExecuteSequence>
    

    如果您想知道“$(var.ProductName).exe”是什么,我将在命令行中传递 exe 名称,因为我正在创建同一程序的多个品牌版本。只需替换您的 exe 名称即可。

    是的,在这种特殊情况下这样做是安全的。内存中没有可能丢失的数据。

    【讨论】:

      【解决方案2】:

      您应该使用 WiX util 扩展 CloseApplication:

      http://wixtoolset.org/documentation/manual/v3/xsd/util/closeapplication.html

      应该可以。

      从长远来看,您应该将应用程序与重新启动管理器集成,这样它就会自动关闭。

      【讨论】:

        猜你喜欢
        • 2017-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多