2016-06-30 34 views
5

Niedawno zaktualizowałem moje biblioteki klas przenośnych, aby kierować na .NET Core, używając project.json i nowego monikera ramowego netstandard1.0. Rozumiem, że jest to teraz obsługiwane w Nuget 3.4. Mam następujący project.json dla mojego projektu:Visual Studio Team Services Przywracanie pakietu nie powiodło się z projektem project.json netstandard1.0

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

To buduje wielki z Visual Studio 2015 Aktualizacja 3.

Jednak przy użyciu VSTS (był Visual Studio Online) budować, to teraz daje mi następujący błąd podczas pakietu Restore kroku:

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

polecenie to pokazuje wykonanie jest:

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

Czy dzieje się tak z powodu przywrócenia rozwiązania? A może zadanie Build VSTS nie korzysta jeszcze z Nuget 3.4?

+1

@EricLiu ['NETStandard.Library' 1.6.0] (https://www.nuget.org/packages/NETStandard.Library/1.6.0) jest jedyną wersją' NETStandard.Library' na NuGet. Można na tym polegać, nawet jeśli używasz niższej wersji 'netstandard'. – svick

+0

Należy wspomnieć, że jest to project.json, który został utworzony przez Visual Studio 2015 Update 3 po wybraniu nowego linku "Target Net Standard Library" w Właściwości projektu. Byłbym zaskoczony, gdyby był niepoprawny ... – pianomanjh

+0

@EricLiu Tak, ale ten jest również doskonały dla projektów 'netstandard1.0'. Wersja wydania! = Docelowa wersja struktury. (To głupie, że wyglądają tak samo) –

Odpowiedz

0

Miał ten sam problem. Źródłem tego problemu była wersja "Nuget.exe" na serwerze kompilacji. Zainstalowano 3.2.X, ale potrzebujesz wersji 3.4.4-rtm. Nuget może aktualizować się.

Aby zaktualizować Nuget.exe: otwarcie linii poleceń, wpisz "C: \ PathToNuget \ nuget.exe aktualizacja -self"

+0

Zapomniałem wspomnieć, używam hostowanej wersji. Każdy pomysł, jak uruchomić nuget za pomocą zadania wiersza poleceń? Użycie nuget.exe z "update -self" jako argumentem daje "Nazwa pliku nie wskazuje pełnej ścieżki do pliku wykonywalnego." – pianomanjh

+0

Możesz dodać nuget.exe do swojego repozytorium, aw kroku nuget-restore możesz podać ścieżkę do nuget-exe. Robiąc to w ten sposób, możesz sam zaktualizować nuget.exe i masz kontrolę nad używaną wersją –

4

Można rozwinąć sekcję Zaawansowane, a następnie wybierz ostatnią wersję Nuget. Od października 2016 r. Był to Nuget 3.5 rc2

+0

Używamy Nuget 3.5 rc2 (kompilacja 1829), ale wciąż dostajemy następujący błąd: .. \ project.json (15,26): Błąd NU1001: Nie można rozwiązać zależności NetStandard.Library> = 1.6.0. Kiedy staramy się uruchomić tę wersję Nuget lokalnie i uruchomić kompilację dotnet, to działa to bez żadnych problemów. – ghost

1

Uważam, że został już rozwiązany i używasz poprawnej wersji NuGet, ale możesz także dodać wiersz poleceń jako nowy krok budowania, zaraz po Instalatorze NuGet, i wywołaj dotnet restore (Narzędzie: dotnet, Argumenty: restore).