Ответ 1
Вы можете включить исполняемые программы в пакеты NuGet. Из Создание и публикация пакета:
tools. Папка инструментов пакета предназначена для сценариев и программ powershell. доступный из консоли диспетчера пакетов. После копирования папки в целевую папку project, он добавляется к переменной среды $env: Path (PATH).
Есть несколько вещей, о которых вам следует знать, если вы решите это сделать:
- Вы правы, что, в отличие от RubyGems, NuGet не имеет понятия пакетов системного или машинного уровня; пакеты либо нацелены на один проект, либо (реже) на решение. Таким образом, этот исполняемый файл будет помещен в папку пакета для каждого решения, в котором он используется.
- Расширение NuGet Visual Studio добавляет путь к папке инструментов пакета в переменную среды PATH на ее консоли, поэтому вы можете удобно выполнять программы в ней. Вне Visual Studio при использовании других клиентов NuGet (таких как nuget.exe) автоматическая обработка PATH не будет, поэтому вам придется обрабатывать путь к программе.
- Эта функция NuGet предназначена для скриптов и исполняемых программ, которые каким-то образом связаны с разработкой проекта (например, генераторы кода, инструменты, которые управляют файлами проектов, инструменты, которые дополняют фреймворки, такие как эмуляторы или серверы разработки и т.д.). Хотя вы, безусловно, можете использовать эту функцию таким образом, чтобы она не была разработана, если вы хотите предоставить системные программы, которые действительно не связаны с разработкой проекта, вы можете посмотреть Chocolatey, "диспетчер машинного пакета, несколько похожий на apt-get, но построенный с учетом окон".