Visual Studio 挂起“正在执行注册”

Posted

技术标签:

【中文标题】Visual Studio 挂起“正在执行注册”【英文标题】:Visual Studio hang on "Performing registration" 【发布时间】:2012-08-09 16:21:32 【问题描述】:

我认为这是非常基本的。今天我正在构建一个静态链接到 ATL 的动态链接项目。在构建它时,它挂在“执行注册”阶段并且没有继续。我可以看到任务管理器中有一个 regsvr32.exe。我猜这个过程是在做注册工作。但它永远不会结束。

所以我取消了构建并重试,然后我有一些未解决的外部符号问题。有人可以向我解释为什么会这样吗?非常感谢你! 平台(Windows 7 64,VS 2008)

最好的问候,

【问题讨论】:

【参考方案1】:

regsvr32.exe 正在加载您的 DLL,并调用它的 DllRegisterServer 导出函数。假设它冻结了,您可以使用任务管理器、进程资源管理器或调试器检查它 - 附加到冻结的进程。因此,原因很可能在您的 DLL 中,您需要解决它,使用调试器附加,或者只是使用 C:\Windows\syswow64\regsvr32.exe <full path to your DLL> 启动调试会话。

并不是说如果您的 DLL 是 32 位的,那么您需要 syswow64\regsvr32.exe,而不是 system32\regsvr32.exe(否则被调试者将启动一个子进程,该子进程将冻结而不被调试)。

【讨论】:

该项目没有 DllRegisterServer。只有一个模块属性,如:[ module(dll, uuid = "****-****-****--", name = "模块", helpstring = "演示模块", resource_name = "IDR_DemoModule") ]; 确实有,它在您继承的基础中。您可以使用 Dependency Walker 应用程序见证这一点。【参考方案2】:

查看taskmanager,看看regsvr32.exe传入的参数是什么,正常注册这样的dll会被什么东西阻塞,得到什么阻塞,如果可能的话调试到dllmain中。

【讨论】:

以上是关于Visual Studio 挂起“正在执行注册”的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2010 挂起附加到进程/调试

Visual Studio 2013 在右键单击时挂起

Visual Studio 在开始构建之前挂起 20 秒

Visual Studio 2012安装:ngen挂起/什么都不做

带有 ASP.NET Core 的 Visual Studio 2019 挂起(无响应)

简单的 Http 请求在 Visual Studio 中执行时挂起,在 powershell 中工作 [关闭]