VB.NET DLL "Компонент ActiveX не может создать объект" - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь создать DLL в VB.NET, используя Visual Studio 2017. DLL будет использоваться в VBA в другом приложении.Проект VB.NET является проектом библиотеки классов .NET Framework.

Я добавил файл * .TLB в качестве ссылки в VBA.Я только пытаюсь создать и использовать один метод в библиотеке классов.Я вызываю его в VBA, используя что-то похожее на следующее:

Sub MySub()
    Dim TestObj As MyProjectName.MyClassName
    Set TestObj = New MyProjectName.MyClassName
    Call TestObj.MyMethodName(Argument)
End Sub

Код всегда выдает ошибку выполнения 429 «ActiveX компонент не может создать объект» в следующей строке (из примера выше):

Set TestObj = New MyProjectName.MyClassName

Этот вопрос задавался ранее, однако большинство из них довольно старые (~ 10 лет), и ни одно из предложенных решений не имело никакого значения.Я продолжаю находить ссылки на REGASM.EXE.Насколько я понимаю, Visual Studio обрабатывает это автоматически, и что вызов этого вручную не требуется, если установлен флажок «Проект> Свойства> Компилировать> Зарегистрировать для взаимодействия COM».

Я следовал этим инструкциям длябуква: https://smallbusiness.chron.com/use-net-class-library-excel-vba-40349.html

Кроме того, я попытался создать вместо этого класс COM в ответ на следующий вопрос: Компонент ActiveX не может создать объект при использовании класса .net в vba

Я пробовал по крайней мере полдюжины различных итераций этого, и все они выдают Runtime Error 429 «ActiveX компонент не может создать объект».Есть что-то, чего я здесь не хватает?Может ли это быть проблемой версии как-то?Мой проект VS ориентирован на .NET Framework 4.7.2.

...