如何使用WiX软件包安装.NET 4.5?

前端之家收集整理的这篇文章主要介绍了如何使用WiX软件包安装.NET 4.5?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要包括Microsoft .NET 4.5作为我的安装包的先决条件,我希望它尽可能自动.但是,当unistalling不应该删除.NET.我想我已经阅读了关于如何使用DetectCondition和/或InstallCondition的一切,但我仍然没有得到正确的;它总是运行.NET安装,或者永远不要运行它.

这是我的最新设置:

<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'>

  <!-- Define minimum .NET Framework version -->
  <?define NetFx45MinRelease = 377811?>
  ...
    <Chain>
      <PackageGroupRef Id="Netfx45FullPackage"/>
      ...
    </Chain>

    <PackageGroup Id="Netfx45FullPackage">
      <ExePackage Id="Netfx45Full" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes"
                  SourceFile="..\..\..\..\Environment\InstallerResources\Prerequisites\dotnetfx45_full_x86_x64.exe"
                  InstallCommand="/passive /norestart"
                  DetectCondition="NETFRAMEWORK45 &gt;= $(var.NetFx45MinRelease)"
                  InstallCondition="NOT REMOVE AND (NETFRAMEWORK45 &lt; $(var.NetFx45MinRelease))" />
    </PackageGroup>

(由于某种原因,我不得不自己定义NetFx45MinRelease,即使它已经包含在WixNetFxExtension中.)

如何让设置正确无误?

我不太确定你为什么遇到问题,但我只是有相同的任务,它(现在;-)按照预期工作.也就是说,只有在需要的时候才安装 .NET 4.5,并且在整体卸载引导程序时不会执行.NET卸载.

但是,.NET 4.5可以单独卸载,我认为是好的.

这是我使用的(最可能源自其他Stack Overflow帖子):

<PackageGroup Id="Netfx45Xxx">
    <ExePackage Id="Netfx45Xxx" Cache="no" Compressed="no" PerMachine="yes" Permanent="yes" Vital="yes" InstallCommand="/q"
        SourceFile="C:\wixtest\dotnetfx45_full_x86_x64.exe"
        DetectCondition="(Netfx4FullVersion=&quot;4.5.50709&quot;) AND (NOT VersionNT64 OR (Netfx4x64FullVersion=&quot;4.5.50709&quot;))"
        InstallCondition="(VersionNT >= v6.0 OR VersionNT64 >= v6.0) AND (NOT (Netfx4FullVersion=&quot;4.5.50709&quot; OR Netfx4x64FullVersion=&quot;4.5.50709&quot;))"/>
</PackageGroup>

奇怪的是,你已经有永久=“是”,这确实是保持.NET卸载的关键.

一个区别是我在InstallCondition中没有明确的“NOT REMOVE”,也许这比Windows Installer更有帮助吗?

我正在使用WiN 3.7.1224.0,目前是最新的.

对TheESJ答案的一个评论:即使使用预定义的PackageGroupRef,您可以提供本地文件以避免下载.只需将其放置在引导程序EXE文件下面的“重新启动”文件夹中,如果没有下载,它将从那里取出.在安装错误后,我昨天通过日志文件找到了这个行为.

猜你在找的Windows相关文章