对.NET DLL的Excel引用会破坏新版本

我有一个安装到GAC的.NET DLL,因为它被几个应用程序使用。

其中之一是一个Excel工作簿,它使用.NET的COM互操作工具引用该DLL。 COM tlb文件安装到应用程序目录。

这一切都工作正常,除了安装DLL的更新版本。 在某些PC上,工作簿中的COM参考会中断(显示为“Missing”)。 运行相关的macros使Excel崩溃。 这可以通过在VBA编辑器中取消选中缺less的引用并重新添加对DLL的引用来解决,但我宁愿我的用户在每次打开它时都不必这样做。

所有相关的对象和方法都没有改变的签名,并用不变的GUID进行装饰。

任何想法为什么参考打破?

编辑:深入一些在调查深入调查后,它看起来像COM注册没有正确安装。 但是,这并没有显示为安装失败。 尽pipe如此,仍然没有find根本的原因。

我们在这里也有问题。 因此,我们的补丁程序始终运行gacutil.exe / cdl来清除下载caching。 该解决scheme对我们没有意义,因为我们没有通过浏览器下载我们的程序集,但是它有帮助。 要查看是否会帮助您,请尝试运行gacutil.exe / l以查看您的程序集是否在下载caching中。

另外,请注意,由于某些原因,gacutil没有与框架一起重新分配,所以您首先需要将其复制到相关系统中。