vb6 - 注册 COM Interop 始终在 Visual Studio 2012 中运行

标签 vb6 visual-studio-2012 com-interop

我有一个包含多个项目的解决方案,这些项目已检查Register for COM Interop

我有一个引用生成的 TLB 的 Visual Basic 6 项目。 VB6 的一个问题是当它引用 dll/tlb 时,它会对该文件加锁。

使用 Visual Studio 2010,除非我正在重建或对这些互操作项目之一进行更改,否则我可以构建/运行该解决方案(打开 VB6 项目),而不会出现一个或多个程序集已锁定。

但是,使用 Visual Studio 2012,即使在没有任何更改的简单构建上,显然它总是会出现重新高潮,这使我无法调试我的 VB6 项目。

Visual Studio 在构建时运行 regasm 的这个新功能是我可以关闭的吗?

编辑:请允许我简化一下:

  • 使用 Visual Studio 2010,点击Build-->Build Solution 并检查标记为Register for COM Interop 的程序集之一的输出和文件没有改变。
  • 使用 Visual Studio 2012,我执行构建-->构建解决方案并检查相同的程序集,它已更新,并且每次点击构建解决方案时都会执行此操作.

我希望 Visual Studio 2012 中的行为与 2010 中的行为相同。

编辑(再次): 我将此发布到 Microsoft Connect 。如果有人在那里回答或发布解决方法,我会敦促他们也在这里发布答案。

最佳答案

我在运行VB6和VS20XX时总是遇到这样的问题,但我总是进行重建。我的建议是停止使用 VB6 进行测试。我发现简单地创建一个测试项目并在 .NET 中对我的 .NET 代码进行所有测试要容易得多。这应该只需要少量的设置,但在我看来这是非常值得的。

我知道这不是您具体问题的答案,但它提供了另一种选择。就您所描述的问题而言,我无法重复行为的改变。我首先只打开 VS201X,重建完整的解决方案,打开 VB6 并添加对公开的 COM DLL 的引用。我没有注意到任何意外。

  1. 只要我没有更改 COM DLL 中的任何内容,构建就可以正常工作
  2. 如果我在文件被锁定时更改 COM DLL 的代码,则构建会失败
  3. 由于文件被锁定,重建失败

关于vb6 - 注册 COM Interop 始终在 Visual Studio 2012 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12822769/

相关文章:

mysql - SQL *= 语句(外连接)

VB6 错误 50003 意外错误 : is the solution to re-register DLLs?

c# - 无法使用 Visual Studio 2012 RTM 在 Silverlight 5 项目中添加 XAML 断点

c++ - 导致编译错误的意外模板实例化

visual-studio - Visual Studio 的评论重播

c# - 从 Excel VBA 启动 TransactionScope?

无法找到从 VB6 调用的 C++ DLL 程序

sql - 如何检查表是否存在

c# - C++ 调用 C# 选项

com - C# 到 VB6 COM 事件 (“object or class does not support the set of events” ),但不同