@danij_com

Как добавить dll в конечную сборку c#?

Нужно добавить прилинкованную стороннюю библиотеку, чтобы она добавилась в конечную сборку, и при открытии .exe уже не нужна была в одной папке с ним. Как этого добиться в студии?
  • Вопрос задан
  • 2030 просмотров
Решения вопроса 1
Dyaminigo
@Dyaminigo
.NET Developer
Можно использовать Costura.Fody. Эта библиотека позволит Вам, при сборке проекта, и в случае, если зависимые dll являются управляемыми (написанными на .NET), на выходе получить обычный exe'шник, в ресурсах которого будут зависимые библиотеки. А если Вам нужно добавить в сборку неуправляемые dll (написанные на C++/C и т.д.), достаточно отредактировать файл FodyWeavers.xml, добавив имена этих dll в специальные секции. Подробнее читайте про это в репозитории, ссылку на который я дал выше, под заголовком "Unmanaged32Assemblies & Unmanaged64Assemblies".
Также можно использовать ILMerge. Пример использования в этом посте на Хабре. Помните, что он работает только с управляемыми .NET библиотеками, а с неуправляемыми не умеет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
lam0x86
@lam0x86
Install-Package MSBuild.ILMerge.Task
Ответ написан
Комментировать
petermzg
@petermzg
Самый лучший программист
Поместить dll в ресурсы exe файла и на OnAssemblyResolve домена - подгружать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы