У меня есть приложение VB6, в котором используется C # COM DLL, скомпилированная с .Net Framework 3.5.Однако на сервере 2016 года .Net 3.5 не установлен.Однако 4.6.7 есть и будет выполнять код DLL.
Однако, когда vb6 вызывает CreateObject
, происходит сбой.(хотя объект COM зарегистрирован правильно.)
Установщик приложения вызывает утилиту RegASM в правильной папке .Net framework для регистрации библиотеки типов для 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>