2016-07-05 12 views
0

Für eine gemeinsame Bibliothek, die ich sehr oft für alle Arten von Projekten verwende, habe ich einen Nuget-Server eingerichtet. Für eine Weile habe ich das nugget-Paket manuell veröffentlicht:Nuget Packaging schlägt nach Automatisierung in VSTS fehl

nuget pack .\ProjectFolder\CommonProjectName.csproj -Symbols -Build -Properties Configuration=Release 

und schob dieses Paket manuell auf den nugget-Server.

Jetzt möchte ich diesen publishing automatisieren VSTS vNext Verwendung beim Aufbau wie in diesem blogitem beschrieben: http://www.codewrecks.com/blog/index.php/2015/09/26/publishing-a-nuget-package-to-nugetmyget-with-vso-build-vnext/

verwende ich die gleiche nuspec Datei wie zuvor:

<?xml version="1.0"?> 
    <package > 
    <metadata> 
     <id>Common Library</id> 
     <version>1.0.0.0</version> 
     <title>Library Title</title> 
     <authors>...</authors> 
     <owners>...</owners> 
     <requireLicenseAcceptance>false</requireLicenseAcceptance> 
     <description>...</description> 
     <releaseNotes>...</releaseNotes> 
     <copyright>Copyright 2016</copyright> 
     <tags>...</tags> 
     <dependencies> 
     <dependency id="EntityFramework" version="6.1.3" /> 
     <dependency id="log4net" version="2.0.4" /> 
     <dependency id="Microsoft.AspNet.Mvc" version="5.2.3" /> 
     <dependency id="Microsoft.AspNet.Razor" version="3.2.3" /> 
     <dependency id="Microsoft.AspNet.WebPages" version="3.2.3" /> 
     <dependency id="Microsoft.Web.Infrastructure" version="1.0.0.0" /> 
     </dependencies> 
    </metadata> 
</package> 

Jetzt nach Automatisierung bekomme ich folgende Fehler Nachrichten:

Beschreibung: Die Assembly 'bin \ Release \ CommonLibrary.dll' befindet sich nicht im Ordner 'lib' und wird daher nicht als Referenz hinzugefügt, wenn das Paket in einem Projekt installiert wird. Lösung: Verschieben Sie es in den 'lib' Ordner, wenn es referenziert werden soll. Problem: Assembly außerhalb lib-Ordner.

Ich las den Paketkonventionen Abschnitt auf der niget Seite, aber wie befolge ich automatisch diese Konventionen. Mit anderen Worten, wie bekomme ich die gebauten und referenzierten DLLs an meinem Buidcontroller an der richtigen Stelle?

Danke für die Hilfe,

Mit freundlichen Grüßen, Luuk Krijnen

Extra-: nach dem nuget Paket mit FTP meine komplette Quellcode herunterzuladen als wel meine kompilierte Quellen Somm dem Paket in einem hinzugefügt Baum wie mein ursprünglicher Quellcode. So ist meine kompilierte DLL innerhalb de Ordner \ Bin \ Release \

Antwort

0

einen Abschnitt Dateien in die nuspec Datei ein Ziel Hinzufügen Hinzufügen scheint die Lösung.

<?xml version="1.0"?> 
    <package > 
    <metadata> 
     <id>Common Library</id> 
     <version>1.0.0.0</version> 
     <title>Library Title</title> 
     <authors>...</authors> 
     <owners>...</owners> 
     <requireLicenseAcceptance>false</requireLicenseAcceptance> 
     <description>...</description> 
     <releaseNotes>...</releaseNotes> 
     <copyright>Copyright 2016</copyright> 
     <tags>...</tags> 
     <dependencies> 
     <dependency id="EntityFramework" version="6.1.3" /> 
     <dependency id="log4net" version="2.0.4" /> 
     <dependency id="Microsoft.AspNet.Mvc" version="5.2.3" /> 
     <dependency id="Microsoft.AspNet.Razor" version="3.2.3" /> 
     <dependency id="Microsoft.AspNet.WebPages" version="3.2.3" /> 
     <dependency id="Microsoft.Web.Infrastructure" version="1.0.0.0" /> 
     </dependencies> 
    </metadata> 
    <files> 
     <file src="<TARGET SPECIFIC FILE.DLL>" target="lib" /> 
     <file src="<TARGET SPECIFIC FILE.PDB>" target="lib" /> 
     ... 
    </files> 
</package>