我有一个 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)