Как вшить внешнюю библиотеку dll в .exe?

Часто при создании проектов на C# мы сталкиваемся с ситуацией, когда импортируемые библиотеки располагаются рядом с файлом .exe. Для того, чтобы сделать проект легко переносимым, чтобы он работал только запуске .exe и не требовал внешних файлов, а все библиотеки (импортируемые библиотеки из NuGet с расширением dll вшивались в выходной .exe), используем решение из NuGet - Costura.Fody. Для установки используем командную строку менеджера пакетов NuGet:
Install-Package Costura.Fody
После добавления его в проект он автоматически вставляет все ссылки, которые копируются в выходной каталог в вашу основную сборку. Возможно, вы захотите очистить встроенные файлы, добавив цель в свой проект:
Install-CleanReferencesTarget
Решение найдено в англоязычном stackoverflow и сочтено весьма полезным автором данного блога: https://stackoverflow.com/questions/189549/embedding-dlls-in-a-compiled-executable

Комментарии

Популярные сообщения