我有一个工作的Wix(BURN)bootsrapper应用程序。链接我的MSI之前的部分先决条件是安装.NET 4.0 Full(如果尚未安装)。我链中的第一项是:
<PackageGroupRef Id="NetFx40Web"/>
就像我说的一切正常,但是因为下载和安装完成可能需要几分钟,并且默认进度条不是很具描述性,我想用选项/ passive / norestart启动.Net安装程序/ q / norestart。
有谁知道如何覆盖NetFx40Web的默认InstallCommand属性?我不想做可再发行的,如果我可以避免它(大多数计算机已经有我的应用程序正在安装的.Net 4.0),但测试我这样做并且能够使其成为被动。
感谢。
答案 0 :(得分:3)
只需复制NetFx40Web PackageGroup的source,而不是引用它。更改ID以确保您不会发生碰撞
<?define NetFx40EulaLink = http://go.microsoft.com/fwlink/?LinkID=188993 ?>
<util:RegistrySearchRef Id="NETFRAMEWORK40"/>
<WixVariable Id="WixMbaPrereqPackageId" Value="NetFx40Web" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="$(var.NetFx40EulaLink)" />
<PackageGroup Id="PassiveNetFx40Web">
<ExePackage
InstallCommand="/passive /norestart /ChainingPackage "[WixBundleName]""
RepairCommand="/passive /norestart /repair /ChainingPackage "[WixBundleName]""
UninstallCommand="/uninstall /passive /norestart /ChainingPackage "[WixBundleName]""
PerMachine="yes"
DetectCondition="NETFRAMEWORK40"
Id="NetFx40Web"
Vital="yes"
Permanent="yes"
Protocol="netfx4"
DownloadUrl="$(var.NetFx40WebLink)"
Compressed="no"
Name="redist\dotNetFx40_Full_setup.exe">
<RemotePayload
Size="889416"
Version="4.0.30319.1"
ProductName="Microsoft .NET Framework 4"
Description="Microsoft .NET Framework 4 Setup"
CertificatePublicKey="672605E36DD71EC6B8325B91C5FE6971390CB6B6"
CertificateThumbprint="9617094A1CFB59AE7C1F7DFDB6739E4E7C40508F"
Hash="06BECADB92A5FCCA2529C0B93687C2A0C6D0D610"/>
</ExePackage>
</PackageGroup>