我正在尝试使用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用户电子邮件列表,但这是Oughts--我不喜欢80年代的技术,我喜欢我可以轻松搜索的东西。)
答案 0 :(得分:37)
Visual Studio - &gt; WiX项目 - &gt;添加参考 - &gt; 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。
答案 1 :(得分:1)
答案似乎是否定的。您不能(以可靠的方式)检查是否安装了.NET Framework X或更高版本。您只能检查是否安装了特定的.NET版本。 现在.NET 4.0已经发布,即使已经安装了.NET 4.0,也必须安装.NET 3.5。
我希望WiX开发人员能找到解决这个问题的方法。