GetActiveObject не является членом маршала - PullRequest
0 голосов
/ 18 декабря 2018

Я работаю на vb.net в Visual Studio 2017. Я довольно плохо знаком с Visual Basic.Я больше знаком с VBA.

Я создал прототип кода для доступа к Autodesk Vault 2019, загрузил файл и открыл его в Autodesk Inventor 2019. Этот код был создан с помощью шаблона Autodesk Inventor AddIn в Visual Studio.Код скомпилирован без ошибок и функционирует как задумано.

Конечное намерение этого приложения - скомпилировать код в DLL, а затем вызвать эту DLL (с ​​аргументами) из VBA в другом программном обеспечении (CorelDraw).Для этого я понимаю, что мне нужно поместить код в шаблон библиотеки классов, чтобы правильно скомпилировать его в DLL.

При этом у меня возникает проблема со следующей строкойс кодом:

ActiveInvApp = Marshal.GetActiveObject("Inventor.Application")

«Маршал» из «System.Runtime.InteropServices», который импортируется в начале приложения со следующей строкой кода:

Imports System.Runtime.InteropServices

Проблема в том, что Visual Studio не распознает «GetActiveObject».Это подчеркивает это красной волнистой линией.При наведении курсора на него появляется подсказка: «GetActiveObject не является членом Marshal».

На момент написания этой статьи у меня открыты два экземпляра Visual Studio 2017.Один с версией этого кода для библиотеки классов, а другой с версией AddIn Autodesk Inventor.Версия AddIn не имеет проблем с этой строкой кода, а библиотека классов имеет.

В соответствии с некоторыми инструкциями по созданию библиотеки классов DLL, мой код начинается со следующего:

Namespace VaultCOMFunctions
Public Module StringLibrary
    <Extension>
    Public Sub OpenFromVault(PartNum As String)
    'Code for opening the file goes here

Я не уверен, актуально это или нет.Как я уже сказал, я немного новичок в VB.net.

Я потратил много времени, возясь со ссылками, чтобы попытаться прояснить это, но безуспешно.Что может быть причиной этого?Я не могу найти ни одного существующего сообщения на форуме (здесь или в другом месте) с любой подобной проблемой.

1 Ответ

0 голосов
/ 16 июля 2019

Ответ был опубликован @Simon_Mourier в комментариях к исходному сообщению.Проект Visual Studio был ориентирован на .NET Core.Чтобы решить эту проблему, я просто переключил проект на целевой .NET Framework, и ошибка исчезла.

...