Wix启动程序无法检测到已安装的.NET框架。

4
我有一个Wix安装程序和引导程序应用程序,用于安装我的应用程序和服务。作为先决条件,我需要安装.NET 2.0 SP2框架,并尝试使用以下代码片段来检测:
    <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
1个回答

5
请确保正确引用了NetFxExtension。
来源:WixNetfxExtension

使用WixNetfxExtension属性在MSI中使用WixNetfxExtension属性,请按照以下步骤操作:

添加PropertyRef元素,以便在您的MSI中使用上述列出的项。调用light.exe时添加-ext命令行参数,以在MSI链接过程中包含WixNetfxExtension。

例如:

<PropertyRef Id="NETFRAMEWORK20" />

此外,如果您需要 SP2,则可能希望使用属性 NETFRAMEWORK20_SP_LEVEL 来获取适当的服务包级别。在故障排除时,我还会检查安装日志,以查看它是否指示了属性值设置情况。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接