2016-06-30 6 views
5

Ich habe kürzlich meine portablen Klassenbibliotheken auf .NET Core mit Project.json und dem neuen netstandard1.0 Framework-Moniker aktualisiert. Mein Verständnis ist, dass dies jetzt in Nuget 3.4 unterstützt wird. Ich habe folgendes project.json für mein Projekt:Visual Studio Team Services-Buildpaket-Wiederherstellung fehlgeschlagen mit project.json netstandard1.0 target

{ 
    "supports": {}, 
    "dependencies": { 
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1", 
    "NETStandard.Library": "1.6.0" 
    }, 
    "frameworks": { 
    "netstandard1.0": {} 
    } 
} 

Dies baut große von Visual Studio 2015 Update 3

Wenn jedoch VSTS (war Visual Studio Online) bauen mit, gibt es jetzt mir während das Paket die folgenden Fehler Schritt Wiederherstellen:

The project 'MyProject' does not specify any target frameworks in 'C:\a\1\s\MyProject\project.json'. 

der Befehl zeigt es ausgeführt wird:

NuGet.exe restore "C:\a\1\s\Build.sln" -NonInteractive -configfile "C:\a\1\NuGet\newNuGet.config" 

Liegt das an der Ausführung der Wiederherstellung gegen eine Lösung? Oder verwendet VSTS Build Task Nuget 3.4 noch nicht?

+1

@EricLiu ['NETStandard.Library' 1.6.0] (https://www.nuget.org/packages/NETStandard.Library/1.6.0) ist die einzige Release-Version von' NETStandard.Library' auf NuGet. Es ist in Ordnung, davon abhängig zu sein, selbst wenn Sie eine niedrigere Version von 'netstandard' verwenden. – svick

+0

Ich sollte erwähnen, dass dies die project.json ist, die von Visual Studio 2015 Update 3 erstellt wurde, nachdem Sie den neuen Link "Target Net Standard Library" in den Projekteigenschaften ausgewählt haben. Ich wäre überrascht, wenn es falsch wäre ... – pianomanjh

+0

@EricLiu Ja, aber das ist auch völlig in Ordnung für 'netstandard1.0' Projekte. Die Release-Version! = Die Ziel-Framework-Version. (Es ist albern, dass sie gleich aussehen) –

Antwort

0

Hatte das gleiche Problem. Die Ursache für dieses Problem war die Version von "Nuget.exe" auf dem Build-Server. Es war 3.2.X installiert, aber Sie benötigen Version 3.4.4-RTM. Nuget kann sich selbst aktualisieren.

Um Nuget.exe zu aktualisieren: die Kommandozeile öffnen und Typ "C: \ PathToNuget \ nuget.exe Update -tafeln"

+0

Ich vergaß zu erwähnen, ich benutze Hosted Build. Irgendeine Idee, wie man nuget über die Befehlszeilenaufgabe ausführt? Die Verwendung von nuget.exe mit "update -self" als Argumente ergibt einen "Dateiname gibt keinen vollständigen Pfad zu einer ausführbaren Datei an". – pianomanjh

+0

Sie können nuget.exe zu Ihrem Repository hinzufügen und im nuget-restore-Schritt können Sie den Pfad zu nuget-exe angeben. Auf diese Weise können Sie nuget.exe selbst aktualisieren und Sie haben die Kontrolle über die verwendete Version –

4

Sie erweiterte Abschnitt erweitern könnte, und neueste Version von Nuget wählen. Ab Oktober 2016 das war Nuget 3.5 rc2

+0

Wir verwenden Nuget 3.5 rc2 (Build 1829), aber wir erhalten immer noch den folgenden Fehler: .. \ project.json (15,26): Fehler NU1001: Die Abhängigkeit NetStandard.Library> = 1.6.0 konnte nicht aufgelöst werden. Wenn wir versuchen, diese Version von Nuget lokal auszuführen und anschließend dotnet build auszuführen, funktioniert dies ohne Probleme. – ghost

1

Ich glaube, es wurde bereits gelöst und Sie verwenden die gültige Version von NuGet, aber Sie können auch eine Befehlszeile als ein neuer Build-Schritt, direkt nach dem NuGet Installer, und Rufen Sie dotnet restore auf (Tool: dotnet, Argumente: restore).

Verwandte Themen