事因
一个生产电脑上有一个老版本的软件,依赖一个COM组件GN8000Helper.dll
老版本软件想要运行,必须使用如下命令去注册这个COM组件(通过老版本的安装包安装时自动注册):
bash
regsvr32 GN8000Helper.dll
此时在生产电脑上,GN8000Helper.dll的版本是1.0,老版本的软件可以运行
后来开发了一个新版本的软件,也依赖GN8000Helper.dll,把新版本软件做成了一个安装包,当安装包安装到生产电脑上的时候,会自动注册GN8000Helper.dll,此时GN8000Helper.dll的版本是2.0
新安装包安装之后:
新软件可以运行,但是老软件报错了 。
再使用旧安装包安装一次:
旧软件可以打开,但是新软件报错了
处理

如图所示,我们看到有两个GN8000Helper的版本
引用时,属性如下:

此时我们只需要把独立改为true
那么发布到目标机器上,即使被注册多次,也能兼容:
