【发布时间】: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 >= 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