2017-10-14 5 views
0

Ich kann nicht für das Leben von mir herausfinden, warum alle meine Projekte immer die NETStandard.Library 1.6.1 installiert haben.Was steuert Visual Studio .net Core-Version?

Wenn ich laufen dotnet --version von der Kommandozeile ich die folgende Ausgabe

2.1.0-preview1-007102 

Meine CSPROJ Datei sieht wie folgt aus:

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
    <TargetFramework>netstandard2.0</TargetFramework> 
    </PropertyGroup> 
    <ItemGroup> 
    <PackageReference Include="Newtonsoft.Json" Version="10.0.3" /> 
    </ItemGroup> 
</Project> 

Visual Studio blockiert mich von dem Upgrade über nuget in Visual Studio , also muss ich entweder NETStandard.Library 2.0.0 entweder manuell installieren oder den Stack-Überlauf durchsuchen und diesen impliziten Versionstag zu der .csproj hinzufügen, aber WARUM muss ich das tun? Was sagt Visual Studio, dass der Standardwert 1,6 sein sollte?

Was meine ich mit mir blockiert die Installation von NETStandard.Library 2.0.0 unter

enter image description here

Antwort

1

Dieses NuGet Paket nicht manuell bearbeitet soll, obwohl in Ihrem Fall sieht es aus wie eine alte Version von das Werkzeug wird verwendet, das nicht mit netstandard2.0 verwendet werden soll.

Überprüfen Sie, ob Sie die neueste VS-Version (derzeit 15.4.0) und global.json in der Projektverzeichnishierarchie haben, die die SDK-Version auf etwas niedriger als 2.0.0 setzt.

Auch ich schlage vor, mit nicht täglichen Builds (zB Ihre 2.1.0 Vorschau) für Produktion arbeiten, wie Sie es ständig aktualisieren müssen auf der sicheren Seite zu sein, oder erstellen Sie ein global.json Dokument in Ihrem Projektverzeichnis enthält:

{ 
    "sdk": { 
    "version": "2.0.2" 
    } 
} 

Um sicherzustellen, dass Sie eine "gute" Version verwenden (2.0.2 ist die mit VS 2017 15.4.0 ausgelieferte Version). Sie müssen die Lösung anschließend wieder schließen und erneut öffnen.

+0

Ich habe die neuesten VS, und sogar Enterprise-Test heruntergeladen, nur um eine neue auszuprobieren. Gleiche Sache. Der seltsame Teil ist, dass der cli '' dotnet build'' genau wie erwartet funktioniert. Auch mein Build Server baut diese ohne Probleme auf. Ich weiß nicht, ob Visual Studio eine andere '' dotnet''-ausführbare Datei verwendet oder was passiert. –

+0

VS enthält einen "SDK-Resolver", der den Ordner "Microsoft.NET.Sdk" aus einer .net-Core-SDK-Version lokalisiert. Es sucht nach einer global.json, um es zu steuern, sollte aber zu einer Version 1.1.0 oder 2. * auflösen. Sie können mit 'dotnet --info' nachschauen, wo die 2.1.0 Vorschau ist und versuchen, sie zu löschen. ('where dotnet' ist auch ein guter Hinweis) –

+0

Danke, ich habe die 2.0 Vorschau sdks gelöscht, zusammen mit der 1.0 Vorschau sdks, die ich installiert hatte und alles begann zu arbeiten, wie ich es von ihnen erwarte. Ich bin mir nicht sicher, warum das Vorhandensein der Vorschau-SDKs das verursacht hat, aber naja, froh, dass es behoben wurde! –

Verwandte Themen