Вопрос

У меня есть проект, где я одновременно должен использовать отчеты, построенные в Activereports 2 и ActiverePorts 6. В целом, он работает нормально, но некоторые из помощников сборок используют одно и то же имя. Например, чтобы иметь возможность экспортировать в PDF, обе версии используют сборку под названием ActiveReports.pdfexport.dll. Соответствующие сборки разные, конечно.

Обратите внимание, что я не получаю доступа к ActiveReports.pdfexport.dll напрямую - это обрабатывается время выполнения ActiverePorts.

Я не могу найти способ включить их оба в проект. Есть ли путь? Является ли GAC ответ?

Это было полезно?

Решение

Создание отдельно внешние псевдонимы Для каждой сборки помогут, если у вас есть типовые столкновения. Для козыгранных наименований столкновения, посмотрите на Ilmerge; Вы можете объединить все связанные собрания вместе. Вы создаете сборку для ActiverePorts 2, которые объединяет все его необходимые сборки и другое для ActiverePorts 6.

Другие советы

GAC один из способов, но разрешение Fusion имеет много гибкости в этом, что может быть достаточно. Fusion будет зонд в резюме для имени сборки. [DLL | EXE]. Если не найден, это будет пробнееесное имя. [DLL | EXE] name. [DLL | EXE]. Таким образом, вы сможете уйти с созданием папки по имени ActiveReports.pdfexport.dll в папке Bin и сбрасывая старую версию файла там.

Да, вы должны поставить как в GAC (это то, что он сделан для, в случае клиентских сборки).

Моя идея: создайте две помощники библиотек, ссылаться на каждую подходящую сборку, зарегистрируйте их в какую-то фабрику или менеджер и вызов конкретным, когда вам нужно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top