2

setup.msiをインストールする前に、ブートストラップで.NET 4.5 (利用できない場合) をインストールする必要があります。マシンに .NET 4.5 がある場合、製品の setup.msi のみをインストールします。

以下は私のコードです:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">

    <Bundle Name="AAA" Version="1.0.0.0"  UpgradeCode="8DA460D6-B4CB-4ED0-A1FE-44F269070647">
        <BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost">
        </BootstrapperApplicationRef>

        <Chain>
            <PackageGroupRef Id="Netfx45FullP"/>

            <MsiPackage Compressed="yes" Vital="yes"  Id="PMService" Cache="yes" Visible="no"
                SourceFile="C:\Users\abc.msi">
            </MsiPackage>
        </Chain>
    </Bundle>

    <Fragment>
        <WixVariable Id="WixMbaPrereqPackageId" Value="Netfx45Full" />
        <WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" />

        <util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version" Variable="Netfx4FullVersion" />
        <util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version" Variable="Netfx4x64FullVersion" Win64="yes" />

        <PackageGroup Id="Netfx45FullP">
            <ExePackage Id="Netfx45" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes"
                        InstallCommand="/q"
                        SourceFile="dotNetFx45_Full_x86_x64.exe"
                        DetectCondition="(Netfx4FullVersion=&quot;4.5.50709&quot;) AND (NOT VersionNT64 OR (Netfx4x64FullVersion=&quot;4.5.50709&quot;))"
                        InstallCondition="(VersionNT >= v6.0 OR VersionNT64 >= v6.0) AND (NOT (Netfx4FullVersion=&quot;4.5.50709&quot; OR Netfx4x64FullVersion=&quot;4.5.50709&quot;))"/>
        </PackageGroup>
    </Fragment>
</Wix>
4

1 に答える 1

2

AND (NOT (Netfx4FullVersion=&quot;4.5.50709&quot; OR Netfx4x64FullVersion=&quot;4.5.50709&quot;)インストール条件の一部を削除する必要があります。

検出条件は、.NET Framework がインストールされているかどうかを伝えるケースを処理します。インストール済みとして検出された場合、再インストールされません。

インストール条件によって、パッケージをマシン上に置くことを許可するかどうかが決まります。false と評価された場合、パッケージはマシンからアンインストールされます。

検出条件をインストール条件に追加することにより、基本的に、パッケージをマシンにインストールしてマシンにとどめることができなくなります。:)

于 2013-03-18T13:52:22.030 に答える