在我的托管引导程序中,我按如下方式打包Net framework 4.5.1和VC Redistributable:
<PackageGroupRef Id = "NetFx451Redist" />
<PackageGroupRef Id = "VC_ReDist_120" After="NetFx451Redist" />
<RollbackBoundary />
<MsiPackage Id = "MainProduct"
DisplayName = "$(var.ProductName)"
DisplayInternalUI = "no"
Visible = "no"
Compressed = "yes"
SourceFile = "$(var.MainProduct)"
Vital = "yes"
After = "NetFx451Redist"
>
在没有Net FW 4.5.1的Windows 7 x64上,通过安装,这将显示wixstdba的基本屏幕以安装.Net框架,并且它还会在添加 - 删除程序中添加一个条目,然后再完成Net Framework并启动我的msi包安装。
问题:现在完成Net Framework 4.5.1安装并启动我的产品包(托管引导程序),如果我取消其安装,或者由于任何错误/问题而可能会终止,离开了添加 - 删除程序中的条目。如果我尝试从添加 - 删除程序中卸载/更改它,它会再次启动托管引导程序安装界面并启用“安装”按钮,就像它是全新安装一样,但总是以错误结束。
如果我取消安装或因托管界面因任何错误/问题而终止,我想从Add-Remove程序中删除其条目。
我是否遗漏了Bundle或Managed Code中的内容...... ???
答案 0 :(得分:3)
只要安装了捆绑包的任何部分,刻录引擎就会在“添加/删除程序”中注册捆绑包。 .NET必备软件包是软件包的一部分,因此当MBAPrereq BootstrapperApplication安装.NET时,软件包将在“添加/删除程序”中注册。无法在Bundle或BA中修改Burn引擎的此行为。潜在的功能请求可能是Burn只在安装了非永久性软件包后才注册该软件包。功能请求应在http://wixtoolset.org/issues提交。
今天,您可以尝试解决此问题,方法是在您的BA中放置逻辑,然后在调用Engine :: Exit时自动卸载它,如果它检测到这种情况。