VS2008 не получает правильную ссылку для перекомпилированных сборок

Мой клиент - розничный торговец, который использует Microsoft Dynamics RMS в качестве внешнего интерфейса и Simply Accounting 2010 от Sage в качестве своего пакета бухгалтерского учета. Я пытаюсь автоматизировать некоторые процессы записи данных о продажах и т. Д. Из RMS в SA.

RMS использует COM для взаимодействия с надстройками, поэтому мои сборки имеют строгие имена (как и сборки RMS, если на то пошло). Однако сборки SA не имеют строгих имен, и я бился головой о стену в течение некоторого времени, пытаясь строго именовать сборки SA.

Итак: сейчас использую ildasm и ilasm, и на секунду там вроде заработало, нужные мне сборки имеют сильные названия. Основная сборка, Sage_SA.SDK.dll, ссылается на Sage_SA.Domain.dll и Sage_SA.Domain.Utility.dll. Когда я добавляю все 3 эти новые сборки со строгими именами в свое решение VS2008 и пытаюсь скомпилировать, Sage_SA.SDK.dll не может правильно распознать две другие сборки. В частности, сообщение об ошибке в VS2008 говорит: Тип «XXX» определен в сборке, на которую нет ссылки. Вы должны добавить ссылку на сборку «XXX».

Если я могу предоставить дополнительную информацию, пожалуйста, дайте мне знать.

Спасибо,

Лестер


person Lester    schedule 15.02.2011    source источник


Ответы (1)


Прекратите пытаться плыть против течения. Выполните интеграцию в два этапа: 1) подписанные сборки взаимодействуют друг с другом; затем 2) Используйте прокси-сервер или дополнительный EXE-файл для обмена данными между неподписанными сборками.

Я бы создал либо два исполняемых файла (подписанный и неподписанный), либо один исполняемый файл и службу Windows (или что-то еще, что вам кажется удобным и работоспособным). Затем заставьте их каким-то образом разговаривать друг с другом (именованные каналы, TCPIP и т. Д.) Для передачи данных.

person Gabriel Magana    schedule 15.02.2011