gpt4 book ai didi

.net - 在 WiX Burn 自定义托管 Bootstrap 中将 WIC 作为 .NET 4.0 之前的要求添加

转载 作者:行者123 更新时间:2023-12-04 00:26:55 46 4
gpt4 key购买 nike

我在获取带有自定义托管 Bootstrap 应用程序的刻录包时遇到问题,无法在某些未随附 Windows Imaging Component 的平台上启动,而 Windows Imaging Component 是安装 .NET 4.0(Windows 2003 是其中之一)所必需的。

我们使用标准方法来定义托管 Bootstrap 应用程序的要求:

<WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full"/>

当此 Bootstrap 在新安装的 Windows 2003 R2 计算机上运行时,它会启动 .NET 的标准要求安装程序,然后失败并出现错误。

我们已尝试通过执行以下操作(删除所有非必要内容)来解决此问题:

...
<!-- Define WIC packages -->
<PackageGroup Id="PG.WIC">
...
<ExePackage Id="EP.wic_x64_enu" Cache="no" Compressed="no" PerMachine="yes" Permanent="yes" Vital="no"
DisplayName="Windows Imaging Component for Windows Server 2003 x64"
Name="{4A85FFDB-5563-4FE9-9C0E-C780A271BCC7}\WIC\wic_x64_enu.exe"
SourceFile="$(var.SetupPrereq_SRC)\WindowsImagingComponent\x64\wic_x64_enu.exe"
DownloadUrl="http://download.microsoft.com/download/6/4/5/645fed5f-a6e7-44d9-9d10-fe83348796b0/wic_x64_enu.exe"
InstallCondition="(VersionNT=v5.2 AND VersionNT64 AND NOT NETFRAMEWORK40FULL)"
InstallCommand="/q /norestart">
</ExePackage>
</PackageGroup>
...
<!-- Define our own .NET package, and set it to be after the WIC package -->
<PackageGroup Id="PG.NetFx40Full">
<ExePackage Id="EP.NetFx40Full" Cache="no" Compressed="no" PerMachine="yes" Permanent="yes" Vital="yes" Protocol="netfx4"
DisplayName="Microsoft .NET Framework 4"
Name="{4A85FFDB-5563-4FE9-9C0E-C780A271BCC7}\NetFx\dotNetFx40_Full_x86_x64.exe"
SourceFile="$(var.SetupPrereq_SRC)\NetFx\dotNetFx40_Full_x86_x64.exe"
DownloadUrl="http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe"
DetectCondition="NETFRAMEWORK40FULL"
InstallCommand="/q /norestart /ChainingPackage &quot;[WixBundleName]&quot; /log %TEMP%\PG.NetFx40Full.log"
RepairCommand="/q /norestart /repair /ChainingPackage &quot;[WixBundleName]&quot;"
After="EP.wic_x64_enu" >
</ExePackage>
</PackageGroup>
...
<!-- Change wixmbaprereqpackageid to point to our own package-->
<WixVariable Id="WixMbaPrereqPackageId" Value="PG.Netfx4Full" Overridable="no"/>
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" />
...
<Chain>
<!--Windows Imaging Component-->
<PackageGroupRef Id="PG.WIC"/>

<!--.Net Framework 4 -->
<!--Custom offline package.-->
<PackageGroupRef Id="PG.NetFx40Full"/>
...
</Chain>
...

这是行不通的。 prereq 安装程序照常启动,但是当您单击按钮开始安装时,进度条会闪烁一秒钟,然后安装程序会退出。如果 bundle 再次启动,prereq 安装程序会启动,但只显示标题和 Logo ,但没有按钮。我们还尝试将 After 条件放在 .NET 包组的 PackageGroupRef 上,结果相似。

所以,我的问题是:有没有办法让 burn 安装多个包作为托管 Bootstrap 的先决条件,或者有没有其他方法可以解决这个问题?

最佳答案

使用 WiX v3.9 及更高版本,将 bal:PrereqSupportPackage="yes"(在 v4.x 中为 bal:PrereqPackage)添加到您想要prereq BA 安装(它符合 InstallCondition)。

关于.net - 在 WiX Burn 自定义托管 Bootstrap 中将 WIC 作为 .NET 4.0 之前的要求添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12727583/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com