繁体   English   中英

是否有人成功使用免注册 COM 和 .NET 组件?

[英]Is anyone successfully using registration-free COM with .NET components?

直到最近,我们还在为我们的原生组件和 .NET COM 组件愉快地使用免注册COM。 然而,我们遇到了一个奇怪的问题,我们的应用程序开始在 windows XP SP3(但不是在 vista 上)上随机崩溃,因为我们只更改了 .NET 程序集的版本号以从候选发布版移动到发布版。 (你不只是讨厌墨菲定律吗?)

经过许多人日和磨牙,我们发现问题是 sxs.dll 中的一个已知错误,它在检索有关 .NET class 的信息时会导致堆损坏。 有一个热修复程序可以使问题消失,但热修复程序并不打算重新分发。

我们有点难过,免注册的 COM 实现中存在如此可怕的错误。 是否有人成功使用免注册 COM 用于 .NET 组件? 你是如何解决这个问题的?

此问题与 SxS 如何计算 class 信息的大小有关。 程序集的版本号是此信息的一部分。

由于它使用的是候选发布版本号,也许您的解决方法是使发布的版本号与 RC 发布的长度相同。

如果这对您不起作用,则有一个已建立的流程来请求修补程序的重新分发权限。 我会聘请 Microsoft 客户支持来追求这条路线。

我们将免注册 COM 用于本机和 .NET 组件。 我们决定为这些组件使用固定的程序集版本号(主要是为了防止在重复重新安装具有动态内部版本号/*的 .NET 组件时使注册表混乱)。 不理想,但我们有其他方法来确定正在使用的给定组件的哪个版本(它们从不单独修补)。

这听起来确实是一个非常讨厌的问题。 那篇知识库文章几乎让人觉得使用 SxS 是可选的..? 据我所知,这是进行无注册 COM 的唯一方法?

仅供参考,现在可以直接下载修补程序: http://www.microsoft.com/en-us/download/details.aspx?id=27680

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM