5

.Net 4.0.3 (リンク)を必要とするアプリケーションがあります。

インストールされている .Net のバージョンがどこにあるかを示すこの記事を見つけましたが、見つけることができるのは、WiX コンパイラが認識する含まれているプロパティのリストだけです ( here )。

この記事の指示に従ってみましたが、次のコードを使用するように指示されていますが、これは更新なしで .Net 4 をインストールするだけです:

<PropertyRef Id="NETFRAMEWORK40FULL"/>

<Condition Message="This application requires .NET Framework 4.0.3. Please install the .NET Framework then run this installer again.">
    <![CDATA[Installed OR NETFRAMEWORK40FULL]]>
</Condition>

定義済みの WiX プロパティを使用するか、自分でレジストリ値をチェックすることにより、特定の 4.0.3 アップデートを WiX にチェックさせるにはどうすればよいですか?

4

2 に答える 2

3

.net 4.0 の場合、レジストリ キー内のバージョン値は"SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full"常に 4.0.30319 になります (更新プログラムがインストールされている場合でも)。

.net 4.0.3 バージョンが既にインストールされているかどうかを検索するためにバンドルで使用したコードは次のとおりです。

<util:RegistrySearch Root="HKLM" 
    Key="SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.3"
    Result="exists" 
    Variable="Netfx403" />
<util:RegistrySearch Root="HKLM"  
    Key="SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.3" 
    Result="exists"
    Variable="Netfx403x64"
    Win64="yes" />

次に、ExePackage DetectCondition で:

DetectCondition="Netfx403 AND (NOT VersionNT64 OR Netfx403x64)"
于 2014-11-27T08:22:28.260 に答える