WiX:在主要升级中向GAC添加条目

时间:2011-04-06 15:12:34

标签: wix windows-installer gac

我已经对我的安装程序脚本进行了重大升级,其中一个附加组件需要插入GAC。我使用以下代码序列

<Component Id="Net20ApiAssembliesGAC" Guid="GUID">  
<File Id="FileId" Name="FileName" 
  DiskId="1" Assembly=".net" KeyPath="yes" 
  Source="..\..\API\DotNet\Assemblies\v2.0\FileName" />  
</Component>

安装而不是升级早期版本是成功的,但是,如果我升级,我会在详细日志中获得以下条目

UnregisterSharedComponentProvider

ComponentUnregister

并且该条目未出现在GAC中。

我使用&lt; RemoveExistingProducts After =“InstallFinalize”/&gt;移动了RemoveExistingProducts,但这没有效果。

2 个答案:

答案 0 :(得分:1)

您知道调用组件取消注册的位置吗?它不应该发生,但可能是由R​​emoveExistingProducts启动的嵌套卸载无意中从GAC中删除了(新)组件。除非您已经完成了重新使用GUID之类的操作,否则不会发生这种情况。通常,除了清除现已过时且计划删除的组件之外,REP不会对其他任何操作进行操作。

答案 1 :(得分:0)

文件组件的密钥成员是否具有比旧包中的密钥成员更高的版本?这是Windows Installer升级旧组件所必需的。

如果它使用相同的版本,则删除旧组件并且不安装新组件。这是一个已知的Windows Installer错误。