Wix Managed Bootstrapper:安装Net框架并在add-remove程序中添加条目,即使我们取消了产品安装

时间:2015-09-14 07:58:51

标签: .net wix bootstrapper burn

在我的托管引导程序中,我按如下方式打包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包安装。 enter image description here

问题:现在完成Net Framework 4.5.1安装并启动我的产品包(托管引导程序),如果我取消其安装,或者由于任何错误/问题而可能会终止,离开了添加 - 删除程序中的条目。如果我尝试从添加 - 删除程序中卸载/更改它,它会再次启动托管引导程序安装界面并启用“安装”按钮,就像它是全新安装一样,但总是以错误结束。

如果我取消安装或因托管界面因任何错误/问题而终止,我想从Add-Remove程序中删除其条目。

我是否遗漏了Bundle或Managed Code中的内容...... ???

1 个答案:

答案 0 :(得分:3)

只要安装了捆绑包的任何部分,刻录引擎就会在“添加/删除程序”中注册捆绑包。 .NET必备软件包是软件包的一部分,因此当MBAPrereq BootstrapperApplication安装.NET时,软件包将在“添加/删除程序”中注册。无法在Bundle或BA中修改Burn引擎的此行为。潜在的功能请求可能是Burn只在安装了非永久性软件包后才注册该软件包。功能请求应在http://wixtoolset.org/issues提交。

今天,您可以尝试解决此问题,方法是在您的BA中放置逻辑,然后在调用Engine :: Exit时自动卸载它,如果它检测到这种情况。