Visual Studio 注册表捕获实用程序已停止工作,在 Windows7 中编译 C# 项目时出错

Posted

技术标签:

【中文标题】Visual Studio 注册表捕获实用程序已停止工作,在 Windows7 中编译 C# 项目时出错【英文标题】:Visual Studio registry capture utility has stopped working, error compiling C# project in Windows7 【发布时间】:2011-01-20 23:57:13 【问题描述】:

Visual Studio registry capture utility has stopped working.... http://easycaptures.com/fs/uploaded/256/9376236710.png

每次我编译我的项目时,Windows 7 都会显示如下构建错误。

【问题讨论】:

【参考方案1】:

From Microsoft Connect:

    在此处找到 regcap.exe:C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\Deployment 右键单击并选择属性。 选择兼容性选项卡 勾选以兼容模式运行此程序。 在操作系统下拉菜单中选择 Windows Vista SP2 并以管理员身份运行。 单击确定并重新编译。

此解决方案也适用于带有 Visual Studio 2008(32 位版本)的 Windows 7,其中在第 5 步中,您只需选中最后一个组框“权限级别”中的复选框以选择“将此程序作为管理员”

【讨论】:

这也适用于带有 VS 2010 的 64 位 Windows 7。regcap 的路径是 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\Deployment @Guge: 幸运的是你 - 在 64 位 Win7 上的 VS2010 中没有为我工作:-( @Guge:这里的高级时刻,VS2008(以管理员身份运行)而不是 VS2010。以上修复不适用于 VS2008。 这不再有效。它工作正常,但现在我的 Win7 机器给出“警告:无法为名为 xx.ocx 的文件创建注册信息” 我什至在 C"\Program Files\Microsoft Visual Studio 9.0 中都没有工具文件夹。【参考方案2】:

另一个原因From Add-In-Express:

长路径(缓冲区溢出?)。这就是我的情况:我在一个路径很长的安装项目中有 *.tlb,我将它排除在外,它编译正常。

【讨论】:

【参考方案3】:

我在 Windows 7 64 位上使用 VS 2008 构建了一个 MSI 项目。问题是引用 Microsoft.InteropFormTools.tlb 的程序集必须可以通过 COM 从 VB 6 调用。 Visual Studio 将类型库的 Registry 属性默认为 vsdrfCOMSelfReg。将其更改为 vsdrfDoNotRegister 即可解决问题。

提示:在构建/重建过程中注意输出窗口。关闭 RegCap 程序后,我看到以下警告:

注意:无法为名为“Microsoft.InteropFormTools.tlb”的文件创建注册信息

【讨论】:

【参考方案4】:

如果有人在使用 Visual Studio 2015 时遇到此问题,regcap 的路径现在是 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\VSI\bin。

【讨论】:

【参考方案5】:

当我尝试将一个类添加到我的项目中时,我也遇到了这个错误,该类之前已编译为作为引用添加的外部 DLL。我将类添加到项目中,但忘记删除对 DLL 的引用。删除对外部组件的引用解决了问题,并且不再出现此错误消息。

【讨论】:

【参考方案6】:

如果您的项目不需要构建 64 位,您可以改为构建 32 位。

这适用于我的情况。我构建了我的项目 VS 2008 和 Windows 7-64 位并且有相同的错误消息。然后我尝试在 32 位中再次构建并在兼容模式下运行 Visual Studio,它可以工作。

    在 Windows XP 的兼容模式下运行 Visual Studio:

    右键单击 Visual Studio 图标

    选择属性

    在兼容性选项卡中,选中在 Windows 的兼容模式下运行此程序 XP SP3 并检查以管理员身份运行此程序

    转到配置管理器并在 X86 模式下调试您的项目

【讨论】:

这不是答案——32 位与 64 位与问题(或显示的错误消息)没有任何关系。 @Garga :它一个答案。它可能是错误的,但没有理由标记它。 目前还不清楚这个“答案”是否与问题有关。所以有人可以编译为 32 位;这与 shahjapan 收到的错误有什么关系?换句话说,如果我认为对他的硬盘进行碎片整理可以解决这个问题,我可能会发布有关如何执行此操作的说明。但我也会澄清为什么我认为这两者是相关的。否则它看起来只是随机的。

以上是关于Visual Studio 注册表捕获实用程序已停止工作,在 Windows7 中编译 C# 项目时出错的主要内容,如果未能解决你的问题,请参考以下文章

在哪里可以找到 Microsoft Visual Studio 2010 卸载实用程序?

开机总是弹出这个问题visual studio实时调试器,求怎样去除这个.

如何在Mac中使用Visual Studio中的异常捕获日志?

Visual Studio Shell 14 升级破坏了 VSPackage 中的命令捕获

microsoft visual studio 2008找不到一个或多个组件,请重新安装应用程序 的原因都有哪些?

如何捕获在Visual Studio 2015中单击“保存工作项”按钮时触发的事件?