Добавление зависимостей .net dll в проект

Я создаю веб-сайты .net на сервере CMS, используя API поставщика программного обеспечения.

Проблема в том, что для каждой версии программного обеспечения CMS у меня есть разные библиотеки DLL (в основном неверсированные), с которыми мне приходится иметь дело.

Итак, прямо сейчас я создаю несколько повторно используемых серверных компонентов, которые зависят от этих DLL, но, поскольку я хочу использовать эти компоненты на разных веб-сайтах с разными версиями DLL, мне нужно найти способ переключения зависимостей.

Можно ли объединить все зависимости в одну DLL (и сохранить исходные пространства имен)?


person Pablo    schedule 20.07.2009    source источник


Ответы (2)


Существует ILMerge от Microsoft Research, который позволяет объединять несколько сборок. в единый и сохраняя исходные пространства имен.

person Darin Dimitrov    schedule 20.07.2009
comment
Инструмент отлично справляется. Есть пара сборок, которые не удалось объединить, но это кажется многообещающим. - person Pablo; 20.07.2009

Если возникает конфликт пространств имен, в конечном итоге вы можете быть вынуждены динамически загружать DLL. Вы можете сделать это, используя класс Assembly и немного отражения, чтобы получить соответствующие точки входа.

Короче говоря, вы не будете зависеть от времени компиляции API, а вместо этого создадите свою собственную оболочку, реализуя указанную оболочку, используя динамически (через отражение) вызываемые вызовы к dll. Я уверен, что в C # 4.0 это проще, но и в 1.0 это будет работать нормально.

person Eamon Nerbonne    schedule 20.07.2009