gpt4 book ai didi

.net - 如何使用 WiX 包安装 .NET 4.5?

转载 作者:行者123 更新时间:2023-12-03 21:04:14 24 4
gpt4 key购买 nike

我需要包括 Microsoft .NET 4.5 作为我的安装包的先决条件,我希望它尽可能自动。但是,卸载时不应删除 .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 仅在需要时,并且在卸载整个 bootstrap 时不会执行 .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>

奇怪的是,您已经拥有 Permanent="yes",这确实是保持 .NET 卸载的关键。

一个区别是我在 InstallCondition 中没有明确的“NOT REMOVE”,也许这对 Windows Installer 来说比帮助更令人困惑......?

我正在使用 WiX 3.7.1224.0,目前是最新的。

对 TheESJ 回答的一个评论:即使使用预定义的 PackageGroupRef,您也可以提供本地文件以避免下载。只需将它放在 bootstrap EXE 文件下方的“redist”文件夹中,如果存在,它将从那里获取而无需下载。我昨天通过错误安装后的日志文件发现了这种行为。

关于.net - 如何使用 WiX 包安装 .NET 4.5?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13513664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com