小编w1v*_*1ve的帖子

除非存在框架 3.5,否则无法通过 COM 互操作加载程序集?

我有一个 VB6 应用程序,它使用一个用 .Net Framework 3.5 编译的 C# COM DLL。但是,在 Server 2016 上,未安装 .Net 3.5。但是,4.6.7 将运行 DLL 的代码。

但是,当 vb6 调用时CreateObject,它失败了。(尽管 COM 对象已正确注册。)

应用程序安装程序在正确的 .Net 框架文件夹中调用 RegASM 实用程序以注册 DLL 的类型库。我可以验证是否创建了所有正确的注册表项。

VB6 应用程序失败并显示错误 429:无法创建对象。如果我只安装 .Net 3.5,它就可以工作。所以,我确定注册没问题。我只是不知道如何让 DLL 使用 4.xx 框架。

我尝试创建VB6App.exe.config并将supportedRuntime标签放入其中。不走运——假设这仅适用于 .Net exes。

.Net COM DLL 针对新旧操作系统。

如果不需要,我宁愿不安装 .Net 3.5。有没有办法使这项工作?

<configuration>
  <startup>
    <!--Will run on .Net 2.0,3.5-->
    <supportedRuntime version="v2.0.50727"/>
    <!--Will run on .Net 4.0 and later-->
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)

c# vb6 com com-interop .net-framework-version

5
推荐指数
0
解决办法
183
查看次数

标签 统计

.net-framework-version ×1

c# ×1

com ×1

com-interop ×1

vb6 ×1