web-dev-qa-db-fra.com

Package de nuget non autorisé de Visual Studio Team Services utilisant asp.net core rc2

Je ne parviens pas à installer/restaurer les packages de nuget à partir d'un flux Visual Studio Team Services dans une application Web principale asp.net (RC2). Je reçois ce qui suit:

erreur: le code d'état de la réponse n'indique pas la réussite: 401 (non autorisé).

J'exécute Visual Studio Community 2015 Update 2 et nuget version 3.4.4. Je peux installer/restaurer des packages à partir de ce flux dans d'autres types de projets.

Dois-je faire autre chose pour transmettre mes informations d'identification pour une application Web principale asp.net?

étapes pour reproduire:

Dans l'onglet du package Team Services, je sélectionne "Se connecter au flux" et je copie l'URL source du package NuGet

Dans Visual Studio -> Outils -> Gestionnaire de package NuGet -> Paramètres du gestionnaire de package -> Sources de package et ajoutez l'URL du flux depuis vso

Ensuite, dans mon projet ASP.NET Core Web Application (.NET Framework), cliquez avec le bouton droit sur les références -> Gérer les packages NuGet -> Sélectionnez mon flux à partir de la source du package (les packages sont répertoriés) -> Cliquez pour installer

En sortie:

Installing NuGet package xxxxx 
Successfully installed xxxxx to WebApplication1
========== Finished ==========

Ensuite, il essaiera de restaurer le package à quel point j'obtiens:

error: Response status code does not indicate success: 401 (Unauthorized).
error: Failed to retrieve information from remote source

Et à l'intérieur des références de projet Web - le package a une icône d'avertissement - NU1001 La dépendance xxxxx n'a pas pu être résolue

15
HPaxton

Je peux reproduire votre problème à mes côtés et voici la solution de contournement que j'utilise pour restaurer les packages:

  1. Supprimez la ressource de flux VSTS de "VS\Tools\NuGet Package Manager\Package sources".
  2. Ouvrez l'onglet "Packages" à partir de votre portail Web VSTS.
  3. Sélectionnez le flux que vous souhaitez connecter et cliquez sur l'option "Se connecter au flux".
  4. Sélectionnez la méthode "Personal Access Tokens" dans la boîte de dialogue.
  5. Copiez la commande générée dans la boîte de dialogue.
  6. Exécutez CMD en tant qu'administrateur sur votre ordinateur.
  7. Collez la commande copiée dans CMD.
  8. Ajoutez l'argument "-StorePasswordInClearText" après la commande.
  9. Exécutez la commande.
  10. Redémarrez le VS.
  11. Installez et restaurez les packages.
7
Eddie Chen - MSFT

Je sais que ce n'est pas exactement le même problème, mais les gens peuvent rencontrer celui-ci à côté de moi.

J'ai installé VS Community 2019 et hier, j'ai décidé de supprimer le VS 2017, mais après cela, lorsque j'ai essayé de restaurer les packages Nuget créés par la société, il a commencé à afficher une erreur de 401 Non autorisé .

Après quelques recherches sur le net, j'ai décidé que je ne voulais pas jouer avec les configurations et les fichiers VS, je me suis alors rendu compte, car c'est un 404, il est lié à un compte, donc ce que j'ai fait était:

  • Fermé VS2019
  • Je suis allé aux informations d'identification de gestion Windows et j'ai supprimé tous ceux qui étaient liés à mes packages
  • Rouvert VS 2019 et restauré les packages Nuget pour ma solution. Il leur a demandé mes informations d'identification, l'a installé et tout s'est bien passé d'ici.

Voici les deux comptes que j'ai supprimés et recréés:

enter image description here

11
Pimenta

Pour moi, le problème était dû à des informations d'identification incorrectes (ne spécifiant pas le domaine) lors de la connexion à un flux NuGet Azure Artifacts privé sur site, ce qui n'était pas immédiatement apparent.

À l'aide de Visual Studio 2019, ouvrez NuGet Package Manager pour un projet. Si l'onglet "Parcourir" s'affiche en premier et que la source du package est le flux NuGet privé, il ne semble pas y avoir de problème car il répertorie initialement tous les packages. Cependant, le passage à l'onglet "Installé" entraîne l'apparition d'une boîte de dialogue de connexion.

Si j'entre mon nom d'utilisateur et mon mot de passe sans le domaine (donc nom d'utilisateur au lieu de domaine/nom d'utilisateur ), il semble accepter cela, mais aucune autre version n'est répertoriée pour mes packages installés autre que la version installée. Si je vais dans l'onglet "Parcourir", je vois alors l'erreur suivante:

enter image description here

Lorsque je clique sur "Afficher les erreurs en sortie", je vois ce qui suit:

Impossible de récupérer les métadonnées de la source ' https: // [domaine]/[Collection]/_packaging/[GUID] /nuget/v3/query2/?q=&skip=0&take=26&prerelease=true&semVerLevel=2.0. '. Le code d'état de réponse n'indique pas le succès: 401 (non autorisé) .

Pour résoudre ce problème, dans Credential Manager, je ferme Visual Studio, puis supprime toutes les informations d'identification relatives au serveur Azure DevOps (par exemple, [domain], VSCredentials_[domain]). J'ai remarqué que le nom d'utilisateur pour ceux-ci montrait le mauvais domaine - il montrait le domaine du serveur Azure DevOps au lieu du domaine Active Directory.

Je rouvre ensuite Visual Studio, ouvre à nouveau NuGet Package Manager et cette fois (sur l'onglet 'Installé') saisis mes informations d'identification, y compris le domaine ( domaine/nom d'utilisateur ). Cela résout le problème et me permet de me connecter au flux Azure Artifact NuGet.

1
Neo

J'ai eu un problème similaire (pas d'authentification) dans la tâche de restauration NuGet d'une définition de build VSTS. La solution a été d'ajouter un fichier NuGet.config à la racine du projet avec une référence au flux officiel et personnalisé. Peut-être que cela aide également votre projet principal.

    <?xml version="1.0" encoding="utf-8"?>
<configuration>

  <packageSources>
    <clear />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="RmlrTools" value="https://<MyProjectName>.pkgs.visualstudio.com/DefaultCollection/_packaging/<MyFeedName>/nuget/v3/index.json" />
  </packageSources>
  <!-- used to store credentials -->
  <packageSourceCredentials />
  <!-- Used to specify which one of the sources are active -->
  <activePackageSource>
    <!-- this tells only one given source is active -->
    <add key="NuGet official package source" value="https://nuget.org/api/v2/" />
    <!-- this tells that all of them are active -->
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <!-- Used to disable package sources  -->
  <disabledPackageSources />
  <!-- 
  Used to specify default API key associated with sources. 
  See: NuGet.exe help setApiKey
  See: NuGet.exe help Push
  See: NuGet.exe help mirror
  -->
  <!--<apikeys>
    <add key="http://MyRepo/ES/api/v2/package" value="encrypted_api_key" />
  </apikeys>-->
</configuration>
1
Frederic

Essayez de redémarrer l'ordinateur avant d'essayer l'une des solutions ci-dessus.

1
Venkata Tata

En outre, ici est la documentation montrant comment vous devez le faire dans la section ".NET Core".

0
Fabio Reis