2013-12-20 7 views
5

私のアプリケーションは.NET 2.0フレームワークに対してコンパイルされますが、.NET 3.5のインストールを要求されずにWindows 8にインストールすることができます。いくつかの背景情報を提供するために、私は次のapp.configファイルを持っている:WiXで最低限必要な.NETフレームワークのバージョンを指定するには

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup> 
     <supportedRuntime version="v4.0"/> 
     <supportedRuntime version="v2.0.50727"/> 
    </startup> 
    <runtime> 
     <NetFx40_LegacySecurityPolicy enabled="true"/> 
    </runtime> 
</configuration> 

、WiXの.wxsファイルで、私は私のアプリはに対して実行されますフレームワークのすべてのバージョンを指定する必要がありますされて私の質問、以下のような:

<PropertyRef Id="NETFRAMEWORK20"/> 
<Condition Message="This application requires .NET Framework 2.0. Please install the .NET Framework then run this installer again."> 
    <![CDATA[Installed OR NETFRAMEWORK20 OR NETFRAMEWORK30 OR NETFRAMEWORK35_CLIENT OR NETFRAMEWORK35 OR NETFRAMEWORK40CLIENT OR NETFRAMEWORK40FULL OR NETFRAMEWORK45]]> 
</Condition> 

かが、私はそれをショートカットし、このようなものを指定することができます

<PropertyRef Id="NETFRAMEWORK20"/> 
<Condition Message="This application requires .NET Framework 2.0. Please install the .NET Framework then run this installer again."> 
    <![CDATA[Installed OR NETFRAMEWORK20 OR NETFRAMEWORK40CLIENT]]> 
</Condition> 

答えて

1

あなたが何ができるかブートストラップを使用して、Windows版と.NETのバージョンを確認ですここで例えばは:

<ExePackage Id="Netfx45Xxx" Cache="no" Compressed="no" PerMachine="yes" Permanent="yes" Vital="no" InstallCommand="/q" 
SourceFile="..\SetupProject\dotnetfx45_full_x86_x64.exe" 
DetectCondition="(Netfx4FullVersion=&quot;4.5.50709&quot;) AND (NOT VersionNT64 OR (Netfx4x64FullVersion=&quot;4.5.50709&quot;))" 
InstallCondition="(VersionNT &gt;= v6.0 OR VersionNT64 &gt;= v6.0) AND (NOT (Netfx4FullVersion=&quot;4.5.50709&quot; OR Netfx4x64FullVersion=&quot;4.5.50709&quot;))" /> 

だから、あなたが見ることができるようにWindows版と.NETのバージョンを確認する状態を検出し、インストール状態、そこにあります。

+0

私が間違っていると私を訂正しますが、この文が私の目標ではない.NET 4.5をインストールしようとしているようです。 – CtrlDot

+0

論理は同じですが、私のケースではソースファイルである.net 4.5ファイルの代わりにsetup.exeファイルをインストールできます。 .net 4.5とwindows xpをチェックするのではなく、.net 2.0を確認することができます。他に何も求められません。 – Gilad

関連する問題