Как создать пакет NuGet уровня решения для всего проекта?

Я создал галерею NuGet в своей компании. Я хочу создать и опубликовать пакет NuGet уровня решения. Каждый, кто установит пакет, получит не dll, а целый проект, добавленный к его/ее решению Visual Studio. Как и при добавлении существующего проекта, пользователь получит проект с классами исходного кода, и все готово к использованию. Просто создайте его и используйте.

Я знаю, что это возможно, но не смог найти никакой документации.

Кто угодно?


person eyal    schedule 26.07.2014    source источник
comment
Вместо этого я бы использовал многопроектный шаблон VSIX, однако вы можете попробовать следующее: stackoverflow.com/q/6460854/38368   -  person Danny Varod    schedule 06.08.2014


Ответы (1)


В пакет NuGet можно добавлять любые файлы (не только .dll) и даже структуры каталогов, поэтому теоретически вы можете хранить все файлы, принадлежащие проекту, в пакете и публиковать его. Однако установить пакеты NuGet можно только в существующий проект, а это означает, что вы не сможете добавить упакованные файлы в качестве нового проекта в какое-либо решение. Кроме того, содержащиеся файлы будут помещены в папку решения packages, а не в папку решения или проекта.

В качестве альтернативы рассмотрите возможность создания шаблона проекта вместо пакета NuGet, как описано в Как создавать шаблоны проектов и мою запись в блоге Создание шаблонов проектов< /а>. В результате будет создан файл .vsix, который любой разработчик может установить как надстройку Visual Studio. Шаблонный проект появится в диалоговом окне File -> New -> Project... Visual Studio как новый проект. тип и может быть добавлен к любому решению.

Подобно вашей галерее NuGet, также можно создать частную галерею Visual Studio для совместного использования таких надстроек, например внутри компании, как описано в эту статью MSDN.

person andreask    schedule 01.08.2014
comment
Существуют решения для добавления файлов в само решение, которые предполагают добавление скриптов в пакет. Например. stackoverflow.com/q/6460854/38368 - person Danny Varod; 06.08.2014