2009-07-20 3 views
0

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

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

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

Возможно ли связать все зависимости в одной DLL (и сохранить исходные пространства имен)?

ответ

1

В Microsoft Research вы найдете ILMerge, в котором вы можете объединить несколько сборок в единое целое и сохранить исходные пространства имен.

+0

Инструмент отлично справляется. Есть несколько сборок, которые нельзя объединить, но это кажется многообещающим. – Pablo

0

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

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

Смежные вопросы