我正在尝试创建一个WiX软件包,在我的MSI安装程序之前安装.NET Framework 4.0 .我使用命令行参数检查了我的引导程序的日志文件\l log.txt
,发现它ExePackage::DetectCondition
总是评估为false.
我WixNetFxExtension.dll
在Visual Studio 2010 Windows Installer XML Bootstrapper项目中包含了作为参考.
我包括NetFxExtension
命名空间:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
Run Code Online (Sandbox Code Playgroud)
提供基本的bundle框架:
<Bundle Name="RSA Bootstrapper"
...
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
...
<Chain>
<PackageGroupRef Id="NET40" />
<PackageGroupRef Id="RSA_Application" />
</Chain>
</Bundle>
...
Run Code Online (Sandbox Code Playgroud)
我<PropertyRef Id="NETFRAMEWORK40FULL" />
在片段中包含,然后继续定义.NET Framework 4.0的ExePackage(NET40
):
<Fragment>
<PropertyRef Id="NETFRAMEWORK40FULL" />
<PackageGroup Id="NET40">
<ExePackage SourceFile="dotNetFx40_Full_x86_x64.exe"
Compressed="yes"
Cache="yes"
DetectCondition="NETFRAMEWORK40FULL"
InstallCommand="/norestart /passive /showrmui /ACTION=Install"
Permanent="yes"
InstallCondition="NOT NETFRAMEWORK40FULL"
Vital="yes" >
<ExitCode …
Run Code Online (Sandbox Code Playgroud)