Как / где я могу отправить сторонние библиотеки с .NET DLL?

Я создаю библиотеку классов .NET DLL, которая зависит от других библиотек, таких как log4net.dll - где мне разместить эти библиотеки DLL при упаковке моей DLL? Есть ли способ автоматически включать их в одну супер-DLL? Должен ли я просто отправить все библиотеки DLL в одну папку bin?


person Nosrama    schedule 12.08.2009    source источник


Ответы (5)


Просто отправьте их все в каталог с вашей dll (если вы говорите о двоичном дистрибутиве - в исходном дистрибутиве у меня был бы каталог «lib», содержащий ваши зависимости).

Не забудьте проверить, нужно ли вам также предоставлять лицензии, инструкции по получению исходного кода и т. Д.

У меня не возникнет соблазна попытаться объединить вашу библиотеку классов с зависимостями лично.

person Jon Skeet    schedule 12.08.2009
comment
Я действительно сделал то, что вы сказали не делать в своем последнем заявлении. Из-за этого дополнительного источника мой проект был очень запутанным и запутанным. Итак, я просто не объединил их. :) - person Zack; 12.08.2009

Вам необходимо сначала проверить EULA и другие лицензии, прикрепленные к этим другим DLL. Некоторые могут ограничить способ перераспределения своих библиотек DLL. Предполагая, что с этим нет проблем, вы можете либо скомпилировать их все вместе как одну большую DLL, либо создать установщик (или простой zip-файл), который установит все связанные DLL в их предполагаемом месте назначения.

person BBlake    schedule 12.08.2009

В вашем дереве решений есть папка с именем src для всего исходного кода yoru и папка с именем lib для таких библиотек, как log4net, ваша самодельная библиотека dll и любые другие библиотеки.

person splatto    schedule 12.08.2009

Вам следует взглянуть на ILMerge. Я связал блог, в котором показано использование ILMerge

Использование ILMerge для упрощения

person Michaël Larouche    schedule 12.08.2009

Не уверен, как вы развертываете свое решение, но не забывайте, что для подписания ваших библиотек классов вам необходимо иметь подписанные сторонние библиотеки .dll. Одно это может потребовать от вас объединения всех ваших ссылок.

person JonnyD    schedule 12.08.2009