Проблемы единства, когда мой класс вызывается из COM - PullRequest
0 голосов
/ 04 января 2012

В настоящее время я работаю над решением, которое использует Unity в качестве контейнера для DI.Этот проект содержит класс, видимый для COM, и предоставляет один метод.

Когда я выполняю экземпляр и использую этот класс непосредственно из проекта VS, все работает нормально, и если я использую класс из проекта VS с помощью COM (CreateObject) это тоже хорошо работает.

Теперь я создал файл vbs и пытаюсь создать класс и вызвать метод.Первая проблема заключалась в том, что Unity не удалось найти сборку Microsoft.Practices.Unity.Configuration, которая была указана в атрибуте типа в теге раздела файла XML-конфигурации.Я решил поместить Unity в CAG и использовать полное имя сборки в атрибуте type тега.

Теперь Unity загружается нормально, но это может разрешить мои зависимости.Похоже, он не может найти сборки, указанные в теге <assembly> (но я не уверен).

Я не вижу, что происходит, и я не знаю, почему мой код работаетиз программы .net, а не из файла VBS.

EDIT : я подтвердил, что UNITY ищет библиотеки в папке wscript.exe, но я не знаюкак изменить это поведение.

Может ли кто-нибудь помочь мне с этим вопросом?

Спасибо.

1 Ответ

1 голос
/ 04 января 2012

Я думаю, что это проблема расположения конфигурации. Поскольку приложение запускается с помощью wscript.exe или cscript.exe, платформа ищет (w | c) script.exe.config (я полагаю), где вы настроили контейнер Unity, но вы, вероятно, не предоставили этот файл. Возможно, в этом случае лучше настроить Unity программно.

...