Я создал dll, который будет использоваться несколькими приложениями, и создал пакет установщика, который устанавливает его в файлы программы, а также добавляет его в глобальный кэш сборок.Проблема, связанная с наследованием dll
В самой dll используется log4net и для определения журнала требуется файл xml.
Поэтому когда программа установки запускается следующие файлы копируются в директорию установки в программных файлах: Основная DLL, которые я разработал - The Log4Net.dll - файл Log4Net.xml
Я теперь возникает проблема. Я создал тестовое консольное приложение для экспериментов. Я добавил свою dll в качестве ссылки и установил флаг «local copy» равным false.
Однако, когда я компилирую тестовую консоль exe, я заметил, что он скопировал файлы log4net.dll и log4net.xml в каталог bin. И при запуске тестовой консоли кажется, что она будет работать, только если файл log4net.dll находится в том же каталоге, что и exe. Это объясняет тот факт, что приложение тестовой консоли не использует log4net, но только DLL, добавленная в качестве ссылки.
Есть ли способ получить его так, чтобы используемые файлы журнала log4net.dll & были теми, которые были установлены в файлы программы, а не какое-либо приложение, необходимое для копирования по локальным копиям? Приложения, которые будут использовать мою dll, не будут использовать log4net, использует только DLL, к которой они ссылаются.
Большое спасибо
К сожалению, при использовании локальных копий любых DLL это не вариант. Это связано с требованиями проекта, так как клиент хотел бы, чтобы они были автономными exe, которые они могут запускать. Вот почему я добавил свою DLL в GAC. – Adam
Это помада на свиньи. Это * не * автономный exe, ему нужна сборка в GAC и XML-файл где-то, что его настраивает. Единственный момент наличия «самостоятельного exe» не требует установки. Это свинья, которая не полетела. –
Он должен быть автономным с точки зрения возможности запуска из любого каталога на главной машине. Клиенту нужен чистый каталог, полный exe, который они могут запускать, а не каталог, полный exe и поддерживающий файлы DLL/xml. У меня на самом деле почти все работает, просто добавив log4net.dll в GAC, но теперь у меня есть проблема, когда он не подбирает xml-файл. Однако это шаг вперед. Я согласен с вашими мыслями, что это может быть не лучшее решение, однако, к сожалению, это не мой дизайн, и я ограничен рамками, которые хочет наш клиент. Большое спасибо – Adam