.net - Visual Studio 6 无法加载在 .net 2.0 中编译的 COM dll

标签 .net visual-studio visual-studio-2008 com interop

我在 Visual Studio 2008 中针对 .NET 3.5 框架创建了一个强签名程序集(我也尝试了 2.0 框架)。我公开了一个类作为 COM 可见,我能够在 Visual Studio 6 for Visual Basic 的对象浏览器中找到这个 dll。我可以在 VB6 中创建一个 exe,然后直接从 Windows 资源管理器运行该 exe,一切正常。但是,当我尝试在 Visual Studio 6 中运行 VB6 项目时,.net 程序集不想加载并因以下错误而失败:

ActiveX component can't create object

根据我注册 dll 的方式,我也会收到此错误而不是上面的错误:

-2147024894 File or assembly name (myComponentName), or one of its dependencies, was not found.

或者这个:

-2146233082 Automation error

我已经尝试了所有我能想到的。这似乎是 VS6 在 Debug模式下运行的方式的问题。也许环境不同,缺少这个或另一个 dll 的路径。我在两台不同的开发机器上遇到了这个问题。我还可以引用另一个开发人员使用旧版本的 visual studio .net 构建的 COM .net dll。我什至用 dependency walker 打开了 dll,我没有得到任何明显的错误。

更新: Proc monitor 说 VB6 正在 vb6 studio 主目录“C:\我将 dll 放在那里并注册了它,现在我收到了一个新错误:

-2146234105 (80131107) "The format of the file 'MyDllName' is invalid."

那么,为什么工作室要在那里而不是在它注册的地方寻找我的 DLL?我该如何解决?至少,我怎样才能让 dll 在“C:\Program Files\Microsoft Visual Studio\VB98\”文件夹中工作

最终更新/解决方案: 好的,所以我想通了这个问题。这与 VB6.exe 被锁定在我使用的 .net 框架版本(2.0 或 3.5)之外有关。我发现这个文件“C:\Program Files\Microsoft Visual Studio\VB98\vb6.exe.config”包含以下条目:

<configuration>
  <startup>
      <supportedRuntime version="v1.1.4322" />
  </startup>

我一删除这个文件,dll 就开始在 visual studio 6 环境中正常工作。感谢所有响应帮助的人。

最佳答案

好的,所以我想出了问题。这与 VB6.exe 被锁定在我使用的 .net 框架版本(2.0 或 3.5)之外有关。我发现这个文件“C:\Program Files\Microsoft Visual Studio\VB98\vb6.exe.config”包含以下条目:

<configuration>
  <startup>
      <supportedRuntime version="v1.1.4322" />
  </startup>

我一删除这个文件,dll 就开始在 visual studio 6 环境中正常工作。感谢所有响应帮助的人。

关于.net - Visual Studio 6 无法加载在 .net 2.0 中编译的 COM dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4216106/

相关文章:

asp.net-mvc - "the project type is not supported by this installation"错误

.net - Fitnesse - .NET 4 的标准 fitSharp 配置问题

c++ - 将目前作为独立可执行文件开发的 C++ 项目转换为 DLL

c# - 配置 Visual Studio 自动完成以列出命名空间之外的类?

visual-studio - .vsprops 文件中的 'Delimiter' 和 'InheritsFromParent' 属性是什么意思?

c# - 如何在 C# 中生成 UUID

.net - 处理或将错误从 .NET 程序集传递给 COM 客户端/消费者

javascript - Visual Studio - javascript 自定义对象的智能感知

c# - WPF字典绑定(bind)失败很慢

c# - 如何在 Visual Studio 2017/2019 中为特定目标框架运行单元测试?