Après une nouvelle installation de Windows 10 avec les derniers outils Visual Studio 2015, netcore et nuget, je ne peux plus installer de packages Nuget sur des projets .netstandard. Voici quelques exemples de résultats:
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'.
J'ai créé le projet ClassLibrary1 en tant que bibliothèque de classes portable, modifiez la cible en netstandard1.3 et ne peux installer aucun paquet Nuget prenant en charge netstandard1.3. Il en va de même pour netstandard1.5 et les autres versions.
J'essaie juste d'extraire et de générer le code source de MailKit (un projet prenant en charge .netstandard) pour vérifier que mon projet n'a pas été mal configuré et que je rencontre le même problème:
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.
J'ai posté quelques détails supplémentaires ici: https://github.com/NuGet/Home/issues/3433
Tout cela a fonctionné avant de reformater avec une nouvelle installation de Windows. Est-ce que je manque quelque chose?
Vous avez une solution qui fonctionne grâce à un conseil de @ eddie-msft .
Téléchargez la dernière version de ligne de commande nuget ici https://dist.nuget.org/index.html ( v3.5.0-rc1 au moment de la publication)
Puis lancez:
nuget.exe locals -clear all
J'ai veillé à ce que VS ferme et supprime tous les fichiers project.lock.json existants. Maintenant, tout semble fonctionner comme prévu.
J'ai trouvé que ce problème se produisait sur n'importe quel système avec une nouvelle installation de Windows/VS/tooling, donc probablement un bogue avec leurs installateurs.
Pour VS 2017 - Mise à jour 15.3
Vous pouvez contourner cela en procédant comme suit
Editez le fichier .csproj
pour la bibliothèque .NET Standard et ajoutez ces lignes
<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>
PackageTargetFallback vous permettra d'utiliser des packages compatibles plus anciens.
Il semble que quelque chose manque dans votre outillage et la messagerie d'erreur n'est pas toujours la plus claire à ce sujet. Pouvez-vous vous assurer que vous avez exécuté les deux installateurs ici:
Mise à jour 3 de Visual Studio 2015 (je suppose que vous avez ceci)
.NET Core 1.0.1 - VS 2015 Tooling Preview 2
Je ne pense vraiment pas que ce soit un problème de fichier projet, car MailKit échoue pour vous et je doute que vous ayez cassé NuGet. L’autre partie qui pourrait vous donner de bonnes informations si cela ne fonctionne pas est de courir
Dotnet restore
dans le répertoire du projet pour voir comment donet le gère sans Visual Studio.