直到最近,我们还在为我们的本机和 .NET COM 组件愉快地使用免注册COM。但是,我们遇到了一个奇怪的问题,我们的应用程序在 Windows XP SP3 上开始随机崩溃(但不是在 vista 上),因为我们只更改了 .NET 程序集的版本号以从候选发布版移动到发布版。(你不只是讨厌墨菲定律吗?)
经过许多人日和磨牙,我们发现这个问题是sxs.dll中的一个已知错误,它在检索有关 .NET 类的信息时会导致堆损坏。有一个热修复程序可以使问题消失,但热修复程序并不打算重新分发。
我们有点难过,免注册的 COM 实现中存在如此可怕的错误。有没有人成功地为 .NET 组件使用免注册 COM?你是如何解决这个问题的?