2017-08-29 3 views
0

Ich habe CakeBuild verwendet, um meine Xamarin Portable Class Library zu erstellen und zu testen.CakeBuild: Fehler beim Installieren des Tools 'NUnit.ConsoleRunner'

Im Skript build.cake habe ich definiert, dass ich die NUnit-Konsole verwenden möchte, um meine Testfälle auszuführen. So mache ich

#tool nuget:?package=NUnit.ConsoleRunner 

Unfortunatelly ich folgende Fehlermeldung erhalten, wenn ich den Kuchen Skript ausführen.

Wenn ich eine bestimmte Version hinzufügen, die ich wie unten verwenden möchte, dann funktioniert alles gut.

#tool nuget:?package=NUnit.ConsoleRunner&version=3.7.0 

Kann mir jemand sagen, warum es ohne die Version Zeug nicht funktioniert?

Mit bekomme ich folgende Ausgabe "\ build.ps1 -Verbosity Diagnose.":

Preparing to run build script... 
Running build script... 
Module directory does not exist. 
Analyzing build script... 
Analyzing C:/dev/Xamarin/fleetboard-core-library/build.cake... 
Processing build script... 
Installing tools... 
Installing NuGet package NUnit.ConsoleRunner... 
Executing: "C:/dev/Xamarin/fleetboard-core-library/tools/nuget.exe" install "NUnit.ConsoleRunner" -OutputDirectory "C:/d 
ev/Xamarin/fleetboard-core-library/tools" -ExcludeVersion -NonInteractive 
Unable to find package 'NUnit.ConsoleRunner' 
NuGet exited with 1 
Feeds used: 

Output: 
Feeds used: 

Could not find any relevant files for tool 'NUnit.ConsoleRunner'. Perhaps you need an include parameter? 
Error: Cake.Core.CakeException: Failed to install tool 'NUnit.ConsoleRunner'. 
    at Cake.Core.Scripting.ScriptProcessor.InstallTools(ScriptAnalyzerResult analyzerResult, DirectoryPath installPath) 
    at Cake.Core.Scripting.ScriptRunner.Run(IScriptHost host, FilePath scriptPath, IDictionary`2 arguments) 
    at Cake.Commands.BuildCommand.Execute(CakeOptions options) 
    at Cake.CakeApplication.Run(CakeOptions options) 
    at Cake.Program.Main() 
+0

Was bekommen Sie, wenn Sie Kuchen mit diagnostischer Ausführlichkeit starten? Sie sollten in der Lage sein zu sehen, wie nuget.exe aufgerufen wird, https://stackoverflow.com/questions/38658660/how-to-enable-diagnostic-verbosity-for-cake – devlead

+0

Siehe oben, fügte ich die Ausgabe der ursprünglichen Frage – Pepper

+0

Welche Version von NuGet EXE? Weil es das Paket nicht auflösen kann. Unabhängig davon, für reproduzierbare Builds würde ich empfehlen, eine Version zu pinnen. – devlead

Antwort

0

Jetzt habe ich mein Problem und löste es.

Das Problem war, dass die NuGet.exe keinen Quell-Feed hatte, der auf eine öffentliche Quellquelle wie "https://api.nuget.org/v3/index.json" zeigt.

Dies war, weil meine Standard NuGet.conf in "C: \ Users \ YOUR_USER_HOME \ AppData \ Roaming \ NuGet" keine packageSource definiert hatte. Nuget kennt also den lokalen Paket-Cache nur unter "C: \ Users \ YOUR_USER_HOME.nuget \ packages" und das angegebene Paket wurde nicht berücksichtigt.

Also, nachdem ich eine Paketquelle in "C: \ Users \ YOUR_USER_HOME \ AppData \ Roaming \ NuGet \ NuGet.Conf" hinzugefügt hat, funktioniert alles gut.

Eine andere Möglichkeit besteht darin, neben der Datei build.ps1 eine neue NuGet.Conf hinzuzufügen, die alle Paketquellen enthält, die Sie für CakeBuild und Ihr Xamarin-Projekt benötigen.

Die folgende Seite erläutert, wie Nugget seine Konfiguration findet. Vielleicht ist dies hilfreich, um den Mechanismus zu verstehen, den NuGet verwendet, um seine Konfiguration zu finden:

Verwandte Themen