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 に答える