Невозможно проверить объекты SDK Sap B1 при отладке в Visual Studio 2019

Я работаю с Visual Studio 2019 Community Edition версии 16.7.2.

Я сослался на SapBusinessOneSDK.dll внутри консольного приложения .Net Core для доступа к SAP B1 через DI API, и я не могу проверить какие-либо COM-объект SAP B1 во время отладки. Появляется ошибка:

«Для оценки функции требуется, чтобы все потоки были запущены».

введите описание изображения здесь

Это свойства проекта упомянутого консольного приложения в разделе отладки:

введите описание изображения здесь

И это параметры Visual Studio, относящиеся к отладке:

введите описание изображения здесь

Как мне продолжить?

Спасибо


person jpchauny    schedule 02.09.2020    source источник
comment
Как вы упомянули SapBusinessOneSDK.dll? Это установочный SDK? Как вы его загрузили и использовали?   -  person Mr Qian    schedule 03.09.2020
comment
Приложения в режиме консоли, как правило, враждебны для компонентов COM. Добавьте атрибут [STAThread] в Main (), чтобы попытаться продвинуться вперед.   -  person Hans Passant    schedule 04.09.2020
comment
@HansPassant, вы правы, добавление атрибута [STAThread] в Main () решило проблему. Большое спасибо!   -  person jpchauny    schedule 04.09.2020
comment
@ PerryQian-MSFT SapBusinessOneSDK.dll будет установлен при установке Sap B1 SDK   -  person jpchauny    schedule 04.09.2020
comment
@HansPassant Вы хотите ответить на вопрос формально или я должен ответить на него самостоятельно?   -  person jpchauny    schedule 04.09.2020
comment
Во-первых, спасибо Hans за то, что поделились полезным обходным путем, и я добавил его в качестве ответа, чтобы помочь улучшить эту проблему :) Наконец, спасибо за помощь.   -  person Mr Qian    schedule 07.09.2020
comment
@jpchauny, вы можете принять этот ответ, чтобы помочь другим членам сообщества найти и решить подобные проблемы :)   -  person Mr Qian    schedule 14.09.2020


Ответы (1)


Спасибо, что Ханс поделился полезным обходным путем и добавил его в качестве ответа, чтобы лучше справиться с этой проблемой.

Поскольку у вас есть ссылка на dll компонента com в консольном приложении, а приложения в режиме консоли обычно являются враждебным местом для компонентов COM, вам следует добавить [STAThread], чтобы попасть в него.

[STAThread]
static void Main(string[] args)
{

// any code


}
person Mr Qian    schedule 07.09.2020