【问题标题】:How can I detect .NET 3.5 in WiX?如何在 WiX 中检测 .NET 3.5?
【发布时间】:2009-03-25 18:10:12
【问题描述】:

我正在尝试检测使用 WiX 安装的 .NET 版本。我试过了:

<Condition Message='This setup requires the .NET Framework 3.5 or higher.'>
  <![CDATA[MsiNetAssemblySupport >= "3.5.0.0"]]>
</Condition>

但这行不通,因为 MsiNetAssemblySupport 属性会检查 fusion.dll 的版本,它不是从 .NET 3.0 或 3.5 中的 2.0 版更新的。

检查系统目录中是否存在 .NET 库是否可行?我将如何使用 WiX 做到这一点?或者有没有办法使用注册表来做到这一点?

(我知道有一个 WiX 用户电子邮件列表,但这是应该的——我不喜欢 1980 年代的技术,我喜欢可以轻松搜索的东西。)

【问题讨论】:

  • 讽刺的是,所有答案都说在 Google 上搜索。当这是在 Google 上的第一次点击。

标签: .net wix version


【解决方案1】:

Visual Studio -> WiX 项目 -> 添加引用 -> WixNetFxExtension.dll 然后:

<PropertyRef Id="NETFRAMEWORK35" />
<Condition Message="This setup requires the .NET Framework 3.5 to be installed.">
  Installed OR NETFRAMEWORK35
</Condition>

Full details,包括扩展中可用的所有.NET version properties。还要考虑条件消息是否应该是localized

【讨论】:

  • 错误 LGHT0094:未解决对“产品:*”部分中符号“属性:NETFRAMEWORK35”的引用。
  • @mmr - 我已经澄清了答案,这就是我要做的所有事情。这将添加对 wixproj 的引用,它会自动将 -ext WixNetFxExtension 添加到命令行。
  • 只有 .Net 4.0 框架存在时,有人知道 NETFRAMEWORK35 是否为真吗?
  • @KevM,我添加了另一个链接,NETFRAMEWORK35 Set to #1 if the .NET Framework 3.5 is installed (not set otherwise). 当然,您必须自己测试,但文档显示不,这不是真的。
【解决方案2】:

答案似乎是否定的。您无法(以可靠的方式)检查是否安装了 .NET framework 版本 X 或更高版本。您只能检查是否安装了特定的 .NET 版本。 现在 .NET 4.0 发布了,即使已经安装了 .NET 4.0,您也必须安装 .NET 3.5,这很烦人。

我希望 WiX 开发者能找到解决这个问题的方法。

【讨论】:

    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    相关资源
    最近更新 更多