Я пытаюсь сделать наш процесс сборки TFS для создания пакетов NuGet из проектов нашего решения. Мы стремимся создать частный пакетный источник, поэтому все другие внутренние продукты могут загружать/обновлять структуру с помощью NuGet.NuGet пакет для непрерывной интеграции TFS
До сих пор у нас есть процесс сборки (в течение длительного времени) и управление версиями наших библиотек, и единственное, что осталось, это «nuget pack« все проекты.
Что я судимый до сих пор:
- NuGet спецификация * .csproj, то NuGet пакета * .nuspec;
- nuget spec * .dll, затем nuget pack * .nuspec;
- nuget pack * .csproj напрямую (файл .nuspec);
Все они, похоже, работают, но все они, кажется, терпят неудачу на шагах, которые мне действительно нужны, чтобы добиться успеха.
То, что я на самом деле получить от него указанные действия:
Нет dependency¹ не перечисленные, не reference² не перечисленные;
Нет dependency¹ не указано, не reference² в списке, все DLLки из каталога не упаковывается на ту же .nupkg (whitout использования -IncludeReferencedProjects);
(Лучшее до сих пор) Некоторые dependencies¹ в списке, не reference² в списке, только фактический длл проект находится внутри Lib папки на .nupkg.
¹: По зависимости я имею в виду NuGet зависимости, пакеты от NuGet
²: По ссылке я имею в виду ссылки на проекты решения.
Пример сценария:
Solution1.sln
- ProjectA
- ProjectB
ProjectA имеет Код проекта к ProjectB. То, что я ожидать произойдет на .nuspec генерируемой:
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>ProjectA <- OK</id>
<version>1.2.0.0 < - OK</version>
<title>ProjectA <- OK</title>
<authors>My Company <- OK</authors>
<owners>My Company <- OK</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Description</description>
<copyright>OK</copyright>
<dependencies>
<dependecy id="ProjectB" Version="1.2.0.0" /> <<<<<<---- NOT HAPPENING!
</dependencies>
</metadata>
</package>
Некоторые NuGet зависимости перечислены, но не все из них (даже тогда, когда они находятся внутри packages.config от refeered проекта).Например: у меня есть проект, который зависит от 4 других пакетов NuGet, только 2 указаны как зависимости от сгенерированного файла .nuspec.
Важная информация:
- Каждый проект имеет свой собственный packages.config, путь NuGet строит его;
- Папка решений содержит папку с пакетами со всеми ссылочными пакетами;
- Уже судимое Nugetter (XAML сломаны на VS 2012.3 и TFS 2012, не может открыть его)
- Уже судимое this, также не содержит зависимостей и ссылки надлежащим образом;
- Решение пакета восстановления завершено ON (нам нужно, чтобы избежать хранения пакетов на TFS).
Что мне нужно:
- Автоматизация процесса пакет для упаковки каждого csproj, включая все ссылки и зависимостей на .nuspec файл, поэтому все они будут правильно загружены при установке Это.
Подобные вопросы я посмотрел на:
NuGet: pack command is NOT including nuget dependencies
Nuget pack only including dependencies for some projects
Why doesn't nuget include the referenced project when packing?