【问题标题】:In WiX, what's the correct way to enable .NET 3.5?在 WiX 中,启用 .NET 3.5 的正确方法是什么?
【发布时间】:2019-12-09 13:02:45
【问题描述】:

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

在 Windows 10 上安装它时,.NET 3.5 已包含在内,并且必须在“添加/删除 Windows 功能”中启用。我认为在 Windows 10 上安装可下载版本的 .NET 3.5 无效(如果我错了,请纠正我!)。

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

【问题讨论】:

  • 老实说,正确的方法是不安装。正如我们所说的,MS .NET 4.x 应该是向后兼容的。你应该像避免瘟疫一样避免它。此外,现在有 wixtoolset 的开发人员版本 (> 3.14) 会进行注册表破解,以避免用户必须安装旧的旧版 “恶意软件”

标签: wix .net-3.5 bootstrapper


【解决方案1】:

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

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

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

【讨论】:

  • 您也许可以从setup.exe 包中调用它?请注意,在不询问用户的情况下这样做可能会令人不悦——但我想这会询问用户?
  • 我也遇到过很多次失败,然后人们打电话说他们无法安装,即使您提供有关它是 Microsoft/OS 问题的信息性消息。因为它发生在 您的 安装程序中,所以这是您的问题。通常对于 dism 的东西,我喜欢让用户自己做,并在他们做之前以启动条件失败安装。
  • @SteinÅsmul 我会使用另一个设置 msi 来包装该自定义操作,或者直接使用 <ExePackage>。 sth like<ExePackage SourceFile="C:\Windows\System32\dism.exe" InstallCommand="/online /enable-feature /featurename:NetFx3" ..>——虽然没有测试过
【解决方案2】:

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

...打开命令提示符并键入“gpedit”。 “本地计算机策略编辑器”打开,我们可以在“计算机配置”>“管理模板”>“系统”下找到必要的设置。在左侧的“设置”下,我们可以找到一个名为“为可选组件安装和组件修复指定设置”的设置 这就是我们要修改的内容。让我们打开它并选中“已启用”,然后选中第二个选项——“直接从 Windows 更新而不是 Windows 服务器更新服务 (WSUS) 下载修复内容和可选功能”,然后单击“确定”: 现在,如果我们重新尝试添加 .NET Framework 3.5,我们可以看到它成功了...

然后我个人将此策略设置恢复为其原始值,如果它不同的话。

【讨论】:

    【解决方案3】:

    WiX 示例:一些可能有用的一般链接:


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


    先决条件:如果 .NET 框架不存在,我建议您在包中添加 LaunchCondition 以中止安装。您可以将 .NET 框架与您的应用程序捆绑在一起,但我真的不建议这样做:Outdated prerequisites in packages

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

    快速的内嵌示例

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

    WiX 和 .NET 框架:一些用于检测 .NET 框架的内置措施。


    链接

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2014-04-10
      • 1970-01-01
      • 2012-11-19
      • 2015-09-07
      • 1970-01-01
      相关资源
      最近更新 更多