Pakiet NuGet dla TFS Continuous Integration

Staram się, aby nasz proces budowania TFS generował pakiety NuGet z projektów naszego rozwiązania. Staramy się stworzyć prywatne źródło pakietów, więc wszystkie inne produkty wewnętrzne mogą pobierać / aktualizować strukturę przy użyciu NuGet.

Do tej pory mamy proces budowania działający (przez długi czas) i wersjonujący nasze biblioteki, a jedyne, co nam pozostało, to „nuget pack„wszystkie projekty.

Co dotychczas wypróbowałem:

nuget spec * .csproj, a następnie nuget pack * .nuspec;nuget spec * .dll, następnie nuget pack * .nuspec;nuget pack * .csproj bezpośrednio (brak pliku .nuspec);

Wszystkie z nich wydają się działać, ale wszystkie z nich wydają się nie udać na etapach, które są mi potrzebne do osiągnięcia sukcesu.

Co robię, wykonując wspomniane kroki:

Nie zależność¹ wymieniona,Nie referencyjne² wymienione;

Nie zależność¹ wymieniona,Nie Na liście odnośników² wszystkie biblioteki DLL z katalogu są spakowane na tym samym .nupkg (bez użycia -IncludeReferencedProjects);

(Najlepsze do tej pory)Trochę zależności1 wymienione,Nie Na liście referencyjnej² znajduje się tylko dll projektu w folderze lib na .nupkg.

¹:Przez zależność rozumiem zależności NuGet, pakiety z NuGet
²:Przez odniesienie rozumiem odniesienia do projektu rozwiązania.

Przykładowy scenariusz:

Rozwiązanie1.sln
- ProjectA
- ProjectB

ProjectA maOdniesienie do projektu do ProjectB. Co jaoczekiwać wydarzenie wygenerowane przez .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>    

Wymienione są niektóre zależności nuget, ale nie wszystkie (nawet jeśli znajdują się w pakiecie packages.config z projektu refeered). Na przykład: Mam projekt, który zależy od 4 innych pakietów NuGet, tylko 2 są wymienione jako zależności na wygenerowanym pliku .nuspec.

Ważna informacja:

Każdy projekt ma swoje własne packages.config, sposób, w jaki buduje go NuGet;Folder rozwiązania zawiera folder pakietów ze wszystkimi pakietami, do których istnieją odwołania;Próbowałem już Nugettera (XAML złamany w VS 2012.3 i TFS 2012, nie można go otworzyć)Próbowałem jużto, również nie zawiera poprawnie zależności i odniesień;Przywracanie pakietu rozwiązań jest włączoneNA (potrzebujemy tego, aby uniknąć przechowywania pakietów na TFS).

Czego potrzebuję:

Zautomatyzuj proces pakowania, aby spakować każdy csproj wraz ze wszystkimi odniesieniami i zależnościami do pliku .nuspec, więc wszystkie zostaną poprawnie załadowane podczas instalacji.

Podobne pytania, na które patrzyłem:

Polecenie NuGet: pack NIE obejmuje zależności nuget
Pakiet Nuget zawiera tylko zależności dla niektórych projektów
Dlaczego nuget nie uwzględnia przywoływanego projektu podczas pakowania?

questionAnswers(2)

yourAnswerToTheQuestion