Wim*_*nen 21 .net com winsxs sxs regfreecom
直到最近,我们还很高兴地使用免注册COM作为我们的原生和.NET COM组件.然而,我们遇到了一个奇怪的问题,我们的应用程序开始在Windows XP SP3上随机崩溃(但不是在Vista上),因为我们只更改了.NET程序集的版本号以从候选版本迁移到发布版本.(难道你不讨厌墨菲定律吗?)
经过多次失败的人工和磨牙之后,我们发现问题是sxs.dll中的一个已知错误,它在检索有关.NET类的信息时会导致堆损坏.有一个热修复使问题消失,但热修复不打算重新分配.
我们有点难过在免注册COM实现中存在这样一个可怕的错误.是否有人成功使用免注册COM for .NET组件?你是怎么解决这个问题的?
此问题与SxS如何计算类信息的大小有关.程序集的版本号是此信息的一部分.
由于它使用的是候选版本号,因此可能的解决方法是使版本的版本号与RC版本的版本号相同.
如果这对您不起作用,则有一个已建立的过程,用于请求修补程序的重新分发权限.我会聘请Microsoft客户支持来实现这条路线.