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 中的命令捕获