我有一个Wix安装程序和bootstrapper应用程序来安装我的应用程序和服务。作为先决条件,我需要安装.NET 2.0 SP2 Framework并尝试使用以下codesnippet检测:
<Chain>
<PackageGroupRef Id='Netfx2Package' />
<MsiPackage SourceFile="..\Wix.CHL7.Dispatcher.Service.AZHF\bin\Debug\Wix.CHL7.Dispatcher.Service.AZHF.msi" Id="Wix.CHL7.Dispatcher.Service.AZHF_PackageId" Cache="yes" Visible="no">
<MsiProperty Name="INSTALLDIR" Value="[INSTALLPATH]" />
<MsiProperty Name="WixAppFolder" Value="[INSTALLSCOPE]"/>
</MsiPackage>
</Chain>
</Bundle>
<Fragment>
<WixVariable Id="WixMbaPrereqPackageId" Value="Netfx2Package" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" />
<PackageGroup Id="Netfx2Package">
<ExePackage Id="Netfx2Exe"
Cache="no"
Compressed="no"
PerMachine="yes"
Permanent="yes"
Vital="yes"
SourceFile="C:\Installation\Wix.CHL7.Dispatcher.Service.Bootstrapper\lib\NetFx20SP2_x86.exe"
DownloadUrl="http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe"
DetectCondition="NETFRAMEWORK20"
InstallCondition="FALSE"/>
</PackageGroup>
</Fragment>
当我在安装了.NET 2.0 SP2的计算机上运行安装程序时(在注册表中检查过),我的安装程序想要下载并安装框架。
我认为我的DetectCondition不正确,但似乎无法找到解决问题的正确方法。 那么如何检测我的引导程序中是否安装了.NET 2.0 SP2?
提前致谢!
w ^
答案 0 :(得分:5)
确保正确引用NetFxExtension。
使用WixNetfxExtension属性使用WixNetfxExtension MSI中的属性,使用以下步骤:
为上面列出的要使用的项添加PropertyRef元素 在你的MSI中。添加-ext命令行 调用light.exe以包含WixNetfxExtension时的参数 MSI链接过程。
例如:
<PropertyRef Id="NETFRAMEWORK20" />
此外,如果需要SP2,您可能希望使用属性NETFRAMEWORK20_SP_LEVEL
来获取相应的Service Pack级别。在进行故障排除时,我还要检查安装日志,看它是否指示属性值的设置。