在将项目从**VS 2012**迁移到**VS2013**后的Dll寄存器问题



将项目从VS 2012迁移到VS2013后,我在Dll寄存器上遇到问题

实际上我正在做一个自定义项目,我们是否在每个visual studio版本上限定我们的应用程序,之前我们做了VS 2010VS 2012的迁移,在此期间没有任何组件的问题,但现在当从VS 2012迁移到VS 2013时,我们在注册dll时面临一个问题。

我看不出当前的迁移过程与我们到目前为止执行的以前的迁移活动有什么主要的不同。

错误信息:

我们正在获取模块"XXX.dll"已加载,但DllRegisterServer调用失败,错误代码为0x80020009

我们使用的是Windows7, 64位机器,项目建立在64位项目设置上。在管理模式下执行注册dll的命令提示符。

我们已经尝试过了:

  • 我已经提到了这一点,注册一个dll返回0x80020009错误的错误代码,我们在dll注册过程中得到的,但它并没有解决这个问题
  • 也尝试了这个解决方案http://www.vbforums.com/showthread.php?722793-RESOLVED-call-to-DLLRegisterServer-failed-error-code-0x80020009,但是没有用

经过这么多的努力,我终于解决了这个问题。

主要问题是第三方库Smart Heap,它不支持/兼容VS 2013,因此它影响了其他DLL的DLL注册。

我能够通过排除所有第三方库和单独构建解决方案来确定根本原因,这导致了各自DLL的成功注册顺利,没有任何故障。

Special Thanks to Bathsheba,她帮助我思考,使我能够通过单独排除每个第三方组件并验证问题来隔离问题。

谢谢芭丝谢芭

最新更新