20

我正在尝试检测使用 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 年代的技术,我喜欢可以轻松搜索的东西。)

4

2 回答 2

37

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>

完整详细信息,包括扩展中可用的所有.NET 版本属性。还要考虑条件消息是否应该本地化

于 2009-03-25T18:21:24.453 回答
1

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

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

于 2010-06-28T09:13:15.300 回答