61 votes

Nuget - La restauration du paquet a échoué. Annulation des changements de paquet pour 'WebApplication1'. 0

C'est mon propre paquet nuget personnalisé que je n'ai pas encore publié et que je teste localement.

Le paquet nuget se compose d'un fichier dll et d'un fichier nuspec comme suit.

<?xml version="1.0"?>
<package >
  <metadata>
    <id>MyLib</id>
    <version>1.0.0</version>
    <authors>Author</authors>
    <owners>Owner</owners>
    <licenseUrl>license url</licenseUrl>
    <projectUrl>project url</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>some description</copyright>
    <tags>Tag1 Tage2</tags>
  </metadata>
  <files>
    <file src="bin\Debug\netstandard1.4\*.dll" target="lib" />
    <file src="bin\Debug\netstandard1.4\*.pdb" target="lib" />
  </files>
</package>

J'ai copié le fichier nupkg à un endroit et je l'ai ajouté à l'arborescence de la base de données.

Visual studio Tools -> Options -> Packages -> sources directory 

Erreur :

Package MyLib 1.0.0 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package MyLib 1.0.0 supports: net (.NETFramework,Version=v0.0)
Package restore failed. Rolling back package changes for 'WebApplication1'.

Je ne sais pas comment résoudre le problème ou trouver plus d'informations.

Plus d'informations

Le fichier dll a été créé en utilisant un modèle (.Net Framework 4.5.2)

Templates -> Visual C# -> .NET Core -> Class Library (.NET Standard)

L'application web a été créée en utilisant le modèle. (Application Web vide)

Templates -> Visual C# -> .NET Core -> ASP.NET Core Web Application (.NET Core)

Modifier

J'ai trouvé plus de détails sous Output fenêtre

One or more packages are incompatible with .NETCoreApp,Version=v1.0.

Quel type de bibliothèque de classes dois-je créer qui soit compatible avec .NETCoreApp ?

Edit2

J'ai vu ça URL . il suggère de créer le nupkg en utilisant dotnet.exe pack --no-build alors que plus tôt, j'ai téléchargé le nuget.exe de nuget.org pour créer le paquet.

J'ai essayé la commande ci-dessus mais visual studio dit

"... Target pack doesn't exists in the project ... "

J'ai suivi les instructions sur ce site, mais je n'ai pas réussi. URL

1 votes

Désolé pour la confusion, pourquoi avez-vous mentionné .Net Framework 4.5.2 si vous voulez cibler .netcore ?

0 votes

Oui c'est confus pour moi aussi, quand je sélectionne New Project -> Templates -> .Net Core -> Class Library Framework (.NET Standard) Je ne sais donc pas quel type de modèle de projet je dois choisir pour créer le bon type de dll à utiliser avec .net core.

0 votes

Avez-vous vu ceci un ? A savoir que With NuGet 4.0 and .NET Core projects, package metadata is contained directly in the .csproj

161voto

Shahrooz Ansari Points 2283

Vous devez vider le cache de Nuget. Pour ce faire, allez dans Outils -> Options et cliquez dessus comme cette image enter image description here

10 votes

Veuillez noter que cela nécessite un redémarrage de Visual Studio afin de recharger les paquets, sinon votre projet sera cassé.

13 votes

Cela ne m'a pas aidé malheureusement.

0 votes

@AH. Avez-vous réussi à le découvrir ?

24voto

Ali Points 107

Votre projet cible une version incompatible de .Net Framework. Faites un clic droit sur le projet, sélectionnez Propriétés et notez la valeur de Target Framework. Regardez le paquet Nuget pour Microsoft et installez ensuite un paquet NuGet plus approprié. Soit vous installez l'ancienne version du paquet NuGet, soit vous mettez à jour votre projet pour cibler une version plus récente.

2 votes

J'ai rencontré l'erreur du PO parce que j'ai ajouté une bibliothèque de classe (Standard) au lieu d'une bibliothèque de classe (Framework). Cette réponse m'a permis de comprendre le problème.

0voto

Pascalsz Points 168

J'ai dû modifier la configuration de la construction en raison d'un avertissement NU1603 :.

Dans ma configuration de construction, l'option "Treat warnings as errors" était réglée sur All.

Cela empêchait Nuget de mettre à jour le paquet en raison de l'avertissement NU1603. enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X