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é ?
Je viens de faire ça et ça s'est bien passé. Dans votre Visual Studio, accédez à:
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 !!
J'écris cette réponse en essayant les solutions ci-dessous mais aucune d'entre elles n'a fonctionné:
Solution :
Étape 01. Allez à Paramètres du gestionnaire de packages (Outils> Nuget Package Manager> Paramètres du gestionnaire de packages)
É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.
É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
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.