【问题标题】:Turning Windows Features on with WiX Installer使用 WiX 安装程序打开 Windows 功能
【发布时间】:2017-03-30 16:54:36
【问题描述】:

我想使用 WiX Bundle 打开 .NET Framework 3.5 的 Windows 功能版本。 我知道there is a list of .NET Framework that can be installed。事实上,我使用它来安装 4.6.2,这样就已经完成了。此外,此列表不包含 3.5(可能是因为最近的主要 Windows 已经有一个功能?)

我必须考虑到没有启用 3.5 的用户。

可以吗?

谢谢

【问题讨论】:

  • 感谢 zett42。但是,就像我说的,我已经成功安装了 .NET 4.6.2。所以这不是这里的问题。我需要安装 SQL Local DB,并且需要 .NET 3.5。在 Windows 8/8.1/10/Server2012 上已经安装了 .NET。我只需要启用它。
  • 您不能只在 Win 8 或更高版本上“激活”.NET 3.5。这是no longer part of these OS。只需下载 web installer for .NET 3.5 SP1 并更改现有代码即可启动该可再发行组件。这将触发 Windows 更新以下载并安装 .NET 3.5。
  • @zett42 你确定吗?因为您提供的链接显示它是从“Windows 功能”控制面板启用的。
  • 当用户处于没有互联网连接的环境中时(这确实作为条件存在),它也会成为一个问题。在这种情况下,我们还必须要求用户使用 Windows 安装 DVD 来触发 .NET 3.5 的激活。我不明白为什么微软不提供离线可再发行版本。他们所有的所谓离线都不允许离线安装。

标签: .net wix .net-3.5 wix3.10


【解决方案1】:

我认为你有这个错误 wix 工具集需要启用 .net framework 3.5.1 windows 功能 对于此错误,您可以“控制面板\所有控制面板项目\程序和功能” 并单击“打开或关闭 Windows 功能”并在此处勾选 .NET Framework 3.5

【讨论】:

  • 问题不在于 WiX 不起作用,在开发计算机上一切正常。问题是,作为我们正在创作的设置的一部分,我们需要完全按照您在最终用户系统上的描述进行操作。
【解决方案2】:

您可以使用 DISM 定义自定义操作,例如

<CustomAction Id="ActivateNetFx3" Directory="TARGETDIR" 
ExeCommand="DISM /online /enable-feature /featurename:NetFx3" 
Impersonate="no" Execute="deferred" Return="ignore"/>

据我所知,“激活”.NET 3.5 windows 需要互联网连接,因为它是从互联网下载的。

【讨论】:

  • 这可能不会在出现错误的情况下显示任何 UI,因此它不是非常用户友好。
  • @zett42 这实际上是我见过的最好的答案。我认为错误会导致 DISM 返回非零代码,如果安装程序检测到该错误,则安装程序可能会失败。不过,这纯粹是假设,我还没有测试过。
【解决方案3】:

我在WiX mailing list 中找到了PanelSw WiX 扩展。

根据邮件列表,它也有错误处理,你也可以检查是否需要重新启动。

以下是启用功能的示例语法:

<Component Id="dism" Guid="YOUR-GUID-HERE" Directory="INSTALLDIR">
  <panelsw:Dism EnableFeature="feature-name-regex" ErrorHandling="fail" />
</Component>

XML 命名空间是http://schemas.panel-sw.co.il/wix/WixExtension

【讨论】:

  • 但是,由于无法卸载 Windows 功能(这是有道理的,因为我们不知道其他应用程序是否依赖它),我们决定不将其包含在安装程序中。我们认为安装程序应该清理它安装的所有东西 - 如果不能,我们就不安装它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-13
  • 1970-01-01
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
  • 2021-03-17
  • 2016-05-29
相关资源
最近更新 更多