【问题标题】:WiX - How to link an ExePackage element into a ProductWiX - 如何将 ExePackage 元素链接到产品中
【发布时间】:2014-07-21 11:27:27
【问题描述】:

我正在尝试在我的 MSI 安装程序中包含 VC++ Redistributable 2013 先决条件安装。

我修改了this guy写的Fragment,在进行注册表检查后悄悄下载安装vcredist_x86.exe包(文件-MyWixProject/vcredist.wixobj):

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
    <?define vcredist_x86="http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x86.exe"?>

    <Fragment>
        <util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\DevDiv\vc\Servicing\12.0\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\vc\Servicing\12.0\RuntimeMinimum" Value="Install" Variable="vcredist" />
        <PackageGroup Id="vcredist">
            <PackageGroupRef Id="InstallVCRedist"/>
            <ExePackage Id="vcredist_x86"
                        Cache="no"
                        Compressed="no"
                        PerMachine="yes"
                        Permanent="yes"
                        Vital="yes"
                        Name="Redist\vcredist_x86.exe"
                        SourceFile="Redist\vcredist_x86.exe"
                        DownloadUrl="$(var.vcredist_x86)"
                        InstallCommand="/q"
                        DetectCondition="vcredist AND (vcredist &gt;= 1)">
                <ExitCode Value ="3010" Behavior="forceReboot" />
            </ExePackage>
        </PackageGroup>
    </Fragment>
</Wix>

我正在尝试从我的 Product 元素(文件 MyWixProject/Product.wxs)中引用此 Fragment。我读到“The contents of a Fragment element can be linked into a product by utilizing one of the many *Ref elements”。但是ExePackage 或其PackageGroupRef 怎么能被Product 主元素引用呢?或者还有其他方法可以从.wxsProduct 中编译.wixobj 及其Fragment?>

【问题讨论】:

    标签: wix fragment exe linkage prerequisites


    【解决方案1】:

    ExePackage 仅适用于 Bundle,而不适用于 Product。 MSI 不支持同时安装多个产品,VC++ 可再发行组件只是一个包含多个产品的捆绑包。

    【讨论】:

    • 那么,我应该创建一个运行 VC++ 可再发行组件的 Bundle,然后是我的 Package?
    • 对。如果您有多个包,则需要一个捆绑包。
    • 或者您可以将c++ redist添加为合并模块:wixtoolset.org/documentation/manual/v3/howtos/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多