web-dev-qa-db-fra.com

comment résoudre l'erreur de nuget «Impossible de trouver le package»

Travailler sur la création d'un paquet nuget pour un projet (A.csproj) qui dépend d'un autre projet (B.csprojec) ajouté comme référence de projet.
Voici le .nuspec,

<?xml version="1.0"?>
<package >
  <metadata>
    <id>A.Client</id>
    <title>A.Client</title>
    <description>HttpClient and Models for calling the A Microservice.</description>
    <version>1.0.2</version>
    <authors></authors>
    <owners></owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <copyright>.</copyright>
    <tags></tags>
    <dependencies>
      <group targetFramework=".NETFramework4.5">
        <dependency id="Newtonsoft.Json" version="9.0.1" exclude="Build,Analyzers" />
        // <dependency id="B" version="1.0.0"/> tried this but same error
      </group>
      <group targetFramework=".NETStandard2.0">
        <dependency id="Newtonsoft.Json" version="9.0.1" exclude="Build,Analyzers" />
        // <dependency id="B" version="1.0.0"/> tried this but same error
      </group>
    </dependencies>
    <frameworkAssemblies>
      <frameworkAssembly assemblyName="System.Net.Http" targetFramework=".NETFramework4.5" />
    </frameworkAssemblies>
  </metadata>
  <files>
    <file src="bin\$configuration$\netstandard2.0\A.dll" target="lib\netstandard2.0" />
    <file src="bin\$configuration$\net45\A.dll" target="lib\net45" />
  </files>
</package>

J'ai utilisé

nuget pack A.nuspec -Properties configuration=debug

Pour générer le package. Cependant, lorsque j'ai essayé de consommer ce package dans c.csprojc, j'obtiens l'erreur suivante

Severity    Code    Description Project File    Line    Suppression State
Error   NU1101  Unable to find B. No packages exist with this id in source(s): Local Package source, Microsoft Visual Studio Offline Packages, nuget.org, Package source    

Qu'est-ce que j'ai raté ?

3
yesIcan

Je viens de faire ça et ça s'est bien passé. Dans votre Visual Studio, accédez à:

  1. Outils
  2. Gestionnaire de packages Nuget
  3. Général
  4. Cliquez sur le bouton "Effacer tous les caches Nuget
  5. Ressources du package et cliquez sur "Mettre à jour"
  6. Woolah! Erreur disparue ...
5
Israel Ocbina

La source du package était hors ligne !!

J'ai installé VS2017 professionnel sur mon système et ouvert un projet existant et constaté que plusieurs packages étaient manquants. J'ai essayé tout ce que je pouvais, sans regarder la source du package !!

Manage Nuget Packages for Solution

J'écris cette réponse en essayant les solutions ci-dessous mais aucune d'entre elles n'a fonctionné:

  1. Vider le cache
  2. Restauration ou réinstallation des packages
  3. Changer le cadre cible
  4. Mise à jour du gestionnaire de packages Nuget

Solution :

Étape 01. Allez à Paramètres du gestionnaire de packages (Outils> Nuget Package Manager> Paramètres du gestionnaire de packages) Nuget Package Manager > Package Manager Settings

Étape 02 . Vérifiez la ou les sources du package. Comme vous pouvez le voir, la source du package est ici déjà téléchargée SDK/nugets/packages. Je ne connais pas la raison, mais la source du package en ligne de nuget.org manquait dans mon installation système de Visual Studio.

enter image description here

Étape 03. Installez nuget.org comme source de package, puis "Effacer tous les caches de nuget", puis restaurez les packages. L'erreur disparaîtra.

Nom: nuget.org (ou comme vous le souhaitez) Source: https://api.nuget.org/v3/index.json

enter image description here

4
jainashish

J'ai résolu cela en ajoutant un fichier dépendant

<files>
    <file src="bin\$configuration$\netstandard2.0\a.dll" target="lib\netstandard2.0" />
    <file src="bin\$configuration$\net45\a.dll" target="lib\net45" />
    <file src="bin\$configuration$\netstandard2.0\b.dll" target="lib\netstandard2.0" />
    <file src="bin\$configuration$\net45\b.dll" target="lib\net45" />
  </files>

N'oubliez pas non plus de nettoyer le cache local nuget locals all –clean ou changer de version.

0
yesIcan