Ответ 1
Я бы сделал следующее:
- Зафиксировать файл
.nuspec
рядом с файлом.csproj
- Добавьте файл
nuget.config
, который перемещает папку пакетов на уровень вверх. - Включить восстановление пакета в решении и НЕ зафиксировать содержимое репозитория пакетов NuGet
- Создайте файл msbuild (или любой другой подходящий для вас автомобиль), который имеет:
- цель сборки, которая создает источник и создает пакет nuget
- "публикация" цели, которая подталкивает пакет NuGet к nuget.org и берет ключ API в качестве параметра.
Я лично поддерживаю номер версии пакета nuget в файле .nuspec
и вручную обновляю его, когда выполняю "выпуск". Таким образом, я могу пометить точный релиз, который я нажал на канал NuGet.
С помощью этой установки сборка в Visual Studio не создает пакет NuGet, но все инструменты доступны в репозитории для этого.
Структура папки выглядит следующим образом:
.\Docs\ ==> not in source repo
.\Packages\ ==> not under source control
.\Src\ ==> git repo here
.\Src\MySolution.sln
.\Src\.gitignore
.\Src\MuRules.ruleset
.\Src\build.proj ==> msbuild file to build everything.
.\Src\MyProject\MyProject.csproj
.\Src\MyProject\MyProject.nuspec
.\Src\MyProject\nuget.config
.\Build\ ==> not under source control
.\Build\Debug\
.\Build\Release\
.\Build\Publish\
Помните об этой ошибке в функции восстановления пакета, она будет игнорировать настроенное вами расположение пакетов. http://nuget.codeplex.com/workitem/1990 == > Это исправлено в Nuget 2.7