如何在Wix引导程序中使用NetFx40Web传递安装命令
我有一个正在工作的Wix(BURN)bootsrapper应用程序。链接我的MSI之前,我的部分先决条件是,如果尚未安装.NET 4.0 Full,则安装它。我的链中的第一项是:如何在Wix引导程序中使用NetFx40Web传递安装命令,wix,bootstrapper,Wix,Bootstrapper,我有一个正在工作的Wix(BURN)bootsrapper应用程序。链接我的MSI之前,我的部分先决条件是,如果尚未安装.NET 4.0 Full,则安装它。我的链中的第一项是: 正如我所说的,一切正常,但由于下载和安装可能需要几分钟的时间,并且默认的进度条不是很具有描述性,因此我希望使用选项/passive/norestart而不是/q/norestart启动.Net安装程序 有人知道如何覆盖NetFx40Web的默认InstallCommand属性吗?如果可以避免的话,我不想做可再发行的(
正如我所说的,一切正常,但由于下载和安装可能需要几分钟的时间,并且默认的进度条不是很具有描述性,因此我希望使用选项/passive/norestart而不是/q/norestart启动.Net安装程序
有人知道如何覆盖NetFx40Web的默认InstallCommand属性吗?如果可以避免的话,我不想做可再发行的(大多数计算机都已经安装了我的应用程序的.Net 4.0),但是为了测试,我用这种方式做了,并且能够使它成为被动的
谢谢。只需复制NetFx40Web PackageGroup的,而不是引用它。更改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>
只需复制NetFx40Web PackageGroup的,而不是引用它。更改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>
只需复制NetFx40Web PackageGroup的,而不是引用它。更改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>
只需复制NetFx40Web PackageGroup的,而不是引用它。更改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>
我将这个“被动网络FX40Web”添加到链的顶部,确保没有引用NetFx引用(没有冲突),然后将所有代码放入片段中。我确实去掉了Protocol=“netfx4”,因为调试器告诉我它需要/q作为选项。在所有情况下,谢谢。我将这个“被动网络FX40Web”添加到链的顶部,确保我没有引用NetFx引用(没有冲突),并将所有代码放入片段中。我确实去掉了Protocol=“netfx4”,因为调试器告诉我它需要/q作为选项。在所有情况下,谢谢。我将这个“被动网络FX40Web”添加到链的顶部,确保我没有引用NetFx引用(没有冲突),并将所有代码放入片段中。我确实去掉了Protocol=“netfx4”,因为调试器告诉我它需要/q作为选项。在所有情况下,谢谢。我将这个“被动网络FX40Web”添加到链的顶部,确保我没有引用NetFx引用(没有冲突),并将所有代码放入片段中。我确实去掉了Protocol=“netfx4”,因为调试器告诉我它需要/q作为选项。无论如何,谢谢。