如何使用 WiX 更新 GAC 文件夹中的程序集

问题描述

代码片段:

      <Component Id ="zyx" Guid="{4820d7d5-30a0-448c-a80e-83609c92f235}">
        <File Id="DLLGAC" Assembly=".net" KeyPath="yes" Source="folder\pqr.xyz.dll"/>
      </Component>

我正在尝试使用上述代码升级旧版本的程序集,但出现错误

skipping installation of assembly component: {4820d7d5-30a0-448c-a80e-83609c92f235} since the assembly already exists

解决方法

根据我的经验,您的库版本必须高于已安装的库。并且没有选项可以通过覆盖进行复制。因此,如果库是您的 - 将库版本更改为更高版本。

如果不是: 就我而言,有人将安装程序修改为 3rd 方添加到更高版本,并且不可能用官方新版本替换它。解决此问题的唯一方法是使用简单的 File.Copy 和覆盖进行自定义操作。

How to create custom actions

,
      <Component Id="zyx" Guid="{BB23E1A4-9270-41AA-9266-4D15506E1C63}" Win64="yes">
        <File Id="DLLGAC" Source="folder\pqr.xyz.dlll" KeyPath="yes" Assembly=".net"/>
      </Component>

更改代码格式后,它可以正常工作,这很奇怪,但可以工作:)