在 WiX 中,启用 .NET 3.5 的正确方法是什么?

In WiX, what's the correct way to enable .NET 3.5?

我正在为 Windows 桌面应用程序创建安装程序,它依赖于另一个需要 .NET 3.5 的产品

在 Windows 10 上安装时,包含 .NET 3.5,必须在 Add/Remove Windows 功能中启用。我认为在 Windows 10 上安装 .NET 3.5 的可下载版本是无效的(如果我错了请纠正我!)。

那么,有没有办法让 WiX 启用 .NET 3.5 "feature" 而不是下载和安装它?

不确定这是否是正确的方法,但您可以使用以下命令尝试自定义操作

dism.exe /online /enable-feature /featurename:NetFx3

如果您想尝试其他 windows 功能,您可以通过 dism /online /get-features 获得所有可用功能的列表。

WiX Samples: Some potentially helpful links in general:


替代工具:也许请记住,商业工具具有更易于使用的功能,可以让您的产品快速上市。不过 WiX 很棒。

  • MSI Tools(比较不同的 MSI 工具)
  • On WiX, setup GUI and Commercial tools

Prerequisites:如果 .NET Framework 不存在,我建议您向程序包添加 LaunchCondition 以中止安装。您可以将 .NET 框架与您的应用程序捆绑在一起,但我真的不建议这样做:.

LaunchCondition:LaunchConditions 的概念在允许安装继续之前检查某个条件是否为真:

  • (请至少检查此 link - 如果您不检查其他 link)
  • .

快速内联示例:

<Condition Message="The .NET Framework 2.0 must be installed">
    Installed OR NETFRAMEWORK20
</Condition>

WiX 和 .NET Framework:一些检测 .NET framwork 的内置措施。


Link:

  • Wix IIS Version check launch condition not working
  • LaunchConditions and missing runtimes

有一种方法可以在 Windows 10 和最新的 Windows 服务器上安装 .NET 3.5:更新允许下载 .NET 3.5 的组策略值(blog post).

...open the command prompt and type "gpedit". The "Local Computer Policy Editor" opens where we can locate the necessary setting under the "Computer Configuration" > "Administrative Templates" > "System". On the left side, under "Settings", we can find a setting named "Specify settings for optional component installation and component repair" This is what we are going to modify. Let's open it and check "Enabled" and then check the second option – "Download repair content and optional features directly from Windows Update instead of Windows Server Update Services (WSUS)" and click "OK": Now, if we retry adding the .NET Framework 3.5, we can see that it succeeds...

然后我个人将此策略设置恢复到其原始值(如果不同)。