web-dev-qa-db-de.com

Netstandard1.x Nuget-Pakete können nicht für Netstandard1.x-Projekte installiert werden

Nach einer Neuinstallation von Windows 10 zusammen mit den neuesten Versionen von Visual Studio 2015, Netcore und Nuget-Tools kann ich keine Nuget-Pakete mehr in .net-Standardprojekten installieren. Hier ein Beispiel für eine Ausgabe:

Restoring packages for 'ClassLibrary1'.
Restoring packages for c:\users\zone1\documents\visual studio 2015\Projects\ClassLibrary1\ClassLibrary1\project.json...
Package System.ComponentModel.EventBasedAsync 4.0.11 is not compatible with netstandard1.3 (.NETStandard,Version=v1.3). Package System.ComponentModel.EventBasedAsync 4.0.11 supports:
  - monoandroid10 (MonoAndroid,Version=v1.0)
  - monotouch10 (MonoTouch,Version=v1.0)
  - net45 (.NETFramework,Version=v4.5)
  - netcore50 (.NETCore,Version=v5.0)
  - netstandard1.0 (.NETStandard,Version=v1.0)
  - netstandard1.3 (.NETStandard,Version=v1.3)
  - portable-net45+win8+wp8+wpa81 (.NETPortable,Version=v0.0,Profile=Profile259)
  - win8 (Windows,Version=v8.0)
  - wp8 (WindowsPhone,Version=v8.0)
  - wpa81 (WindowsPhoneApp,Version=v8.1)
  - xamarinios10 (Xamarin.iOS,Version=v1.0)
  - xamarinmac20 (Xamarin.Mac,Version=v2.0)
  - xamarintvos10 (Xamarin.TVOS,Version=v1.0)
  - xamarinwatchos10 (Xamarin.WatchOS,Version=v1.0)
One or more packages are incompatible with .NETStandard,Version=v1.3.
Package restore failed for 'ClassLibrary1'.

Ich habe das Projekt ClassLibrary1 als portable Klassenbibliothek erstellt, das Ziel in netstandard1.3 geändert und kann keine Nuget-Pakete installieren, die Unterstützung für netstandard1.3 zeigen. Gleiches gilt für netstandard1.5 und die anderen Versionen.

Ich versuche einfach, die Quelle für MailKit (ein Projekt, das .netstandard unterstützt) zu ziehen und zu erstellen, um zu überprüfen, dass mein Projekt nicht fehlerhaft eingerichtet wurde und dasselbe Problem auftritt:

Errors in C:\Users\zone1\Repos\MailKit\MailKit\MailKit.CoreFX.xproj
    Package System.Net.NetworkInformation 4.1.0 is not compatible with netstandard1.3 (.NETStandard,Version=v1.3). Package System.Net.NetworkInformation 4.1.0 supports:
      - monoandroid10 (MonoAndroid,Version=v1.0)
      - monotouch10 (MonoTouch,Version=v1.0)
      - net45 (.NETFramework,Version=v4.5)
      - netcore50 (.NETCore,Version=v5.0)
      - netstandard1.0 (.NETStandard,Version=v1.0)
      - netstandard1.3 (.NETStandard,Version=v1.3)
      - portable-net45+win8+wp8+wpa81 (.NETPortable,Version=v0.0,Profile=Profile259)
      - win8 (Windows,Version=v8.0)
      - wp8 (WindowsPhone,Version=v8.0)
      - wpa81 (WindowsPhoneApp,Version=v8.1)
      - xamarinios10 (Xamarin.iOS,Version=v1.0)
      - xamarinmac20 (Xamarin.Mac,Version=v2.0)
      - xamarintvos10 (Xamarin.TVOS,Version=v1.0)
      - xamarinwatchos10 (Xamarin.WatchOS,Version=v1.0)
    One or more packages are incompatible with .NETStandard,Version=v1.3.

Ich habe hier einige weitere Details veröffentlicht: https://github.com/NuGet/Home/issues/3433

Das alles funktionierte, bevor ich mit einer neuen Windows-Installation neu formatiert wurde. Fehlt mir etwas? 

16
zone117x

Bekam eine funktionierende Lösung dank einem Tipp von @ eddie-msft .

Laden Sie das neueste Nuget-Befehlszeilenprogramm von hier https://dist.nuget.org/index.html ( v3.5.0-rc1 zum Zeitpunkt der Veröffentlichung) herunter.

Dann renne:

nuget.exe locals -clear all

Ich habe sichergestellt, dass VS alle vorhandenen project.lock.json-Dateien geschlossen und gelöscht hat. Nun scheint alles wie beabsichtigt zu funktionieren. 

Ich fand dieses Problem auf jedem System mit einer neuen Installation von Windows/VS/Tooling, so dass wahrscheinlich ein Fehler mit ihren Installationsprogrammen auftritt. 

19
zone117x

Für VS 2017 - Update 15.3 

Sie können dies umgehen, indem Sie Folgendes tun

Bearbeiten Sie die .csproj-Datei für die .NET-Standardbibliothek und fügen Sie diese Zeilen hinzu

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
 <TargetFramework>netstandard1.4</TargetFramework>
 <PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.4' ">$(PackageTargetFallback);dotnet5.6;portable-net45+win8</PackageTargetFallback>
 </PropertyGroup>



Other stuff here
 </Project>

Mit PackageTargetFallback können Sie kompatible Pakete verwenden, die älter sind.

https://www.cameronmoten.com/2017/08/19/fixing-xamarin-mit-net-standard-in-visual-studio-2017-v-15-3/

2
Cam Moten

Es sieht so aus, als ob etwas in Ihrem Werkzeug vermisst wird, und die Fehlermeldung ist nicht immer die klarste. Können Sie sicherstellen, dass Sie beide Installationsprogramme hier ausgeführt haben:

Visual Studio 2015 Update 3 (Ich vermute, Sie haben das)

.NET Core 1.0.1 - VS 2015 Tooling Preview 2

Ich glaube wirklich nicht, dass es sich um ein Projektdateiproblem handelt, da MailKit für Sie fehlschlägt und ich bezweifle, dass Sie NuGet gebrochen haben. Das andere Bit, das Ihnen einige gute Informationen geben kann, wenn dies nicht funktioniert, ist das Ausführen

Dotnet restore

im Projektverzeichnis, um zu sehen, wie Donet ohne Visual Studio damit umgeht.

1
Feasoron