我是Wix的新用户。我创建了一个Wix bootstrapper项目。我打算使用从注册表搜索定义的变量来检查我的.net可再发行组件安装是否应该运行。但是,从这个源中我看到了如何包含不同.net安装的链接bundling .net如何在我的离线Wix刻录包中安装.net可再发行软件包
但是,如本文所述,这不适用于脱机的安装程序。
有没有办法将我的.net安装捆绑到我的刻录软件包中,仍然使用类似的东西来运行.net安装?我再次提到wix,我认为PackageGroupRef在这里工作的方式是只在需要时才运行这个.net版本的安装。
例子:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension" >
<Bundle ...>
<Chain>
<PackageGroupRef Id="NetFx451Redist" />
<MsiPackage ... />
</Chain>
</Bundle>
</Wix>
下面是我用什么,它安装在Win 7并安装.NET 4.5.1和拆除后,我的安装并重新安装不调用.NET 4.5.1安装。
使用Ricks例子,我做到了。不过,我必须包含NetFx451MinRelease的定义。有一些我错过了,但现在它正在工作。谢谢里克。
<?define NetFx451MinRelease = 378675 ?>
<util:RegistrySearchRef Id="NETFRAMEWORK45"/>
<Chain>
<ExePackage Id="Netfx451Full"
DisplayName="Microsoft .NET Framework 4.5.1"
SourceFile="..\..\Requirements\NDP451-KB2858728-x86-x64-AllOS-ENU.exe"
InstallCommand="/passive /norestart"
Permanent="yes"
Vital="yes"
Compressed="yes"
DetectCondition="NETFRAMEWORK45 >= $(var.NetFx451MinRelease)" />
</Chain>
请发表您的答案,因为答案从问题中分离出来,当你决定这是最好的答案,接受它。 – 2014-09-19 23:58:08