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