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

时间:2019-03-26 19:25:54

标签: c# com vb6 com-interop .net-framework-version

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

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

应用程序安装程序在正确的.Net Framework文件夹中调用RegASM实用程序,以注册DLL的类型库。我可以验证是否已完成所有正确的注册表项。

VB6应用失败,并显示错误429:无法创建对象。如果除安装.Net 3.5之外我什么也没做,则可以使用。所以,我确定注册可以。 我只是不知道如何使DLL使用4.x.x框架。

我尝试创建VB6App.exe.config并将supportedRuntime标记放入其中。祝您好运-假设这仅适用于.Net exe。

.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>

0 个答案:

没有答案
相关问题