Ошибка сборки, не связанная с Interactive Brokes ActiveX API

Я пытаюсь использовать ActiveX API Interactive Brokers, но у меня возникла небольшая проблема:

ошибка CS0012: Тип «System.Windows.Forms.AxHost» определен в сборке, на которую нет ссылок. Вы должны добавить ссылку на сборку «System.Windows.Forms, версия = 2.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089».

Мой код:

namespace DataFeed.Gateway
{
    class IBGateway : IGateway
    {
        private AxTWSLib.AxTws tws; //<-- the error line
        //...
    }
}

У меня есть консольное приложение, поэтому мне интересно, может ли это быть причиной того, что ActiveX не работает... или здесь происходит что-то еще? Возможно, мне следует добавить AxTWSlib.dll в GAC, но действительно ли я должен это делать? Если я добавлю dll в качестве ресурса, то я подумал, что мне не нужно добавлять ее в GAC.

Примечание. Я поместил AxTWSlib.dll в папку моего проекта и добавил его в ссылки на проект... никаких проблем.


person Kiril    schedule 11.05.2010    source источник


Ответы (1)


Извините, это должно было быть совершенно очевидно с самого начала, когда я прочитал ошибку:

Вы должны добавить ссылку на сборку System.Windows.Forms.

Interactive Brokers ActiveX API требует, чтобы приложение имело ссылки на dll System.Windows.Forms, а консольное приложение не включало ссылки. Я добавил ссылки вручную, и теперь все работает нормально. В качестве альтернативы вы можете создать приложение Windows Forms, и оно должно работать нормально.

person Kiril    schedule 11.05.2010