开发者

WiX : Adding an entry to the GAC in Major Upgrade

I have created a major upgrade to my installer script, one of the additional components needs to be inserted into the GAC. I am using the following code sequence

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

Installing rather than upgrading an earlier version is successful, however, if I upgrade I get the following entries in a verbose log

UnregisterSharedComponentProvider

ComponentUnregister

and the entry does not appear in the GAC.

I have m开发者_运维知识库ove the RemoveExistingProducts using <RemoveExistingProducts After="InstallFinalize" />, but this has not had an effect.


Do you know where the component unregister is getting called. It shouldn't happen but it may be that the nested uninstall initiated by RemoveExistingProducts is inadvertently removing your (new) components from the GAC. That shouldn't happen unless you've done something like re-used a GUID. Normally REP doesn't do operate on anything other than to clear out components that are now obsolete and are scheduled for removal.


Does the key member of the file component have a higher version than the one in the old package? This is required for Windows Installer to upgrade the old component.

If it uses the same version, the old component is removed and the new one is not installed. This is a known Windows Installer bug.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜