AstroMonkey
@AstroMonkey

Как реализовать управление зависимостями в проекте Visual Studio?

Всем доброго времени суток!

При сборке проекта на C#, сторонние библиотеки, подключенные через Add reference, попадают вместе со своими сопутствующими файлами в каталог с запускаемым файлом. Можно ли как-то в параметрах сборки указать как разложить зависимости?

PS
В Java'е все просто решается с помощью maven'а (в клинических случаях ant поможет достать что угодно, и положить в любое место), кладем зависимости в нужное место и прописываем их местоположение в манифест. Никаких похожих инструментов для VS я не нашел.
  • Вопрос задан
  • 3530 просмотров
Решения вопроса 1
Не совсем понятно, что именно хочет автор. Но есть порт maven'а, может он может решить вашу проблему: incubator.apache.org/npanday

Еще можно попробовать сделать это с помощью NuGet.

А еще можно добавить нужные файлы прямо в проект и указать Build Action: "None" и Copy to Output Directory: "Copy If Newer" (файл будет скопирован с папку со сборкой с учетом пути от корня проекта).
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
cjey
@cjey
На счет разложить - не знаю, но можно собрать все сторонние dll в один exe с помощью ilmerge www.microsoft.com/en-us/download/details.aspx?id=17630

Остальные файлы можно добавить в ресурсы
Ответ написан
@AlexP11223
Не совсем понял в чем проблема у автора, но можно использовать Post build event (консольные команды, или бывает удобнее создать .bat или консольное приложение и вызвать там) в настройках проекта для копирования всего, что надо, в требуемое место.

Наверно есть и более продвинутые системы, но не могу на счет них посоветовать, мне хватало и этого.
Ответ написан
Комментировать
@SZolotov
Asp.net core, MAUI,WPF,Qt, Avalonia
Я могу ошибаться т.к. лет 7 не работал с WinForms. Если ссылаетесь на DLL, которая расположена в другой папке, то экзешник при запуске будет искать эту папку с DLL. Если этой папки и DLL там нет то будет искать в папке с экзешником и в системных папках и в папках записанных в переменной окружения path. Что очень удобно если вы хотите показать работу программы на другой машине: копируете всю папку на флешку и не нужно ничего делать.
Как реализовать распределение по папкам. Ручками сделать структуру папок для DLL. Делаете установщик, который создает структуру папок для хранения и закидывает в них DLL. Раньше встроенного в VS шаблона проекта установщика хватало.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы