我正在尝试在我的MSI安装程序中包含VC ++ Redistributable 2013先决条件安装。
我修改了this guy写的Fragment
,以便在执行注册表检查(文件 - MyWixProject / vcredist.wixobj)后安静地下载并安装vcredist_x86.exe包:
<?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 >= 1)">
<ExitCode Value ="3010" Behavior="forceReboot" />
</ExePackage>
</PackageGroup>
</Fragment>
</Wix>
我正在尝试从Fragment
元素(文件MyWixProject / Product.wxs)引用此Product
。我读到了“The contents of a Fragment element can be linked into a product by utilizing one of the many *Ref elements”。但是如何从主ExePackage
元素引用PackageGroupRef
或其Product
?或者是否有另一种方法可以在.wixobj
Fragment
内编译.wxs
及其Product
?&gt;
答案 0 :(得分:1)
ExePackage仅适用于Bundle,而不适用于产品。 MSI不支持同时安装多个产品,VC ++可再发行组件只是一个包含多个产品的捆绑包。