J'exécute .NET Core 1.1.0 sur Ubuntu 14.04, dans le but d'héberger mes API Web dans Docker sur Ubuntu. Je veux construire mes packages sur Ubuntu, mais certaines des références NuGet sont hébergées sur un référentiel NuGet interne (Artifactory). Cela fonctionne très bien dans VS2015 sous Windows après avoir ajouté la source du package, mais lorsque je lance:
dotnet restore
sur Ubuntu, les packages hébergés sur le dépôt public NuGet se téléchargent correctement, mais ceux sur Artifactory échouent:
error: Unable to resolve 'Mercury.BaseModel (>= 1.1.0)' for '.NETCoreApp,Version=v1.1'.
J'ai trouvé un fichier de configuration NuGet à \home\<user>\.nuget\NuGet\NuGet.Config
et a ajouté le référentiel Artifactory comme suit:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="Artifactory-DEV" value="https://theluggage-agct.gray.net/artifactory/api/nuget/nuget-institutional-development-local" protocolVersion="3"/>
</packageSources>
</configuration>
mais je reçois toujours la même erreur.
NuGet lui-même ne fonctionne pas après l'installation du SDK .NET Core, j'utilise dotnet restore
comme mentionné - y a-t-il une configuration similaire que je dois modifier pour la CLI dotnet (qui doit utiliser NuGet?) ou y a-t-il autre chose que je dois faire?
Merci!
Après tout ça j'ai vite identifié 2 problèmes que j'avais ratés:
Sudo -i
à exécuter en tant que root pour tenter de résoudre le problème, car la configuration de NuGet que j'ai installée dans mon dossier\home n'a pas été récupérée.Revenant à ma propre connexion, j'ai ensuite reçu une erreur:
error: Unable to load the service index for source https://theluggage-agct.gray.net/artifactory/api/nuget/nuget-institutional-development-local.
error: The content at 'https://theluggage-agct.gray.net/artifactory/api/nuget/nuget-institutional-development-local' is not a valid JSON object.
error: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
Il s'avère que notre référentiel Artifactory NuGet renvoie du XML qui est compatible NuGet v2. J'ai changé le fichier de configuration pour définir le dépôt comme v2 et cela fonctionne maintenant. Donc, d'en haut, éditez le fichier à
\home\<user>\.nuget\NuGet\NuGet.Config
ajouter votre nouvelle URL de référentiel et obtenir le bon paramètre de version:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="Artifactory-DEV" value="https://theluggage-agct.gray.net/artifactory/api/nuget/nuget-institutional-development-local" protocolVersion="2"/>
</packageSources>
</configuration>
La restauration Dotnet CLI peut prendre -s en tant qu'url du flux source, donc si vous avez Artifactory avec référentiel distant sur nuget.org.
dotnet restore -s https://artifactory.example.com/api/nuget/nuget.org
Référence :