Un élément avec la même clé a déjà été ajouté Lors de L'installation du paquet NuGet

dans mon projet, j'utilisais la bibliothèque de classe. Maintenant j'ai fait cette classe lib comme un paquet NuGet, supprimer la classe lib et quand essayer d'installer le paquet cette erreur apparaît:"un élément avec la même clé a déjà été ajouté"?

18
demandé sur wonea 2015-07-14 15:04:15

7 réponses

dans mon cas, j'ai vu cette erreur quand mes paquets.le fichier de configuration contenait des identifiants de paquets dupliqués qui ne sont pas autorisés.

Vous pouvez utiliser le script PowerShell ci-dessous pour trouver tous les paquets dupliqués dans votre solution. Il trouve tous les paquets.fichiers de configuration récursivement et par paquet.fichier de configuration, il vérifie les doublons d'ID de paquet.

$solutionFolder = "C:\MySolution"
$nugetPackageFile = "packages.config"

$files = Get-ChildItem -Path $solutionFolder -Filter $nugetPackageFile -Recurse

foreach ($file in $files)
{
    [xml]$xml = Get-Content $file.FullName
    $nodes = Select-Xml "/packages/package/@id" $xml
    $packageIds = @{}

    foreach ($node in $nodes) {
        $packageId = $node.Node.'#text'
        try
        {
            $packageIds.Add($packageId, $packageId)
        }
        Catch [System.ArgumentException]
        {
            Write-Host "Found duplicate package in " $file.FullName ". Duplicate package: $packageId"
        }
    }
}
27
répondu lvmeijer 2017-11-22 14:56:32

j'ai eu la même erreur et il a été corrigé après que J'ai mis à niveau NuGet lui-même. Utilisez la boîte de dialogue Outils -> 'Extensions et mises à jour' pour mettre à jour NuGet.

19
répondu ravinsp 2015-08-23 03:24:10

j'ai eu ce problème à plusieurs reprises en récupérant du code d'un autre développeur. Les problèmes mentionnés par d'autres utilisateurs sont certaines des choses que j'ai rencontré. Voici donc une liste des choses que j'ai faites dans le passé pour résoudre ce problème, et aussi une nouvelle je viens de trouver:

  • redémarrez Visual Studio, NuGet renvoie parfois les mauvais fichiers pour une raison quelconque (une situation et une solution très courante)
  • mise à Jour de NuGet Gestionnaire Outils > Extensions et mises à jour... (comme mentionné par @ravinsp)
  • nettoyez et reconstruisez votre solution. Les vieux dlls peuvent tout gâcher (comme mentionné par @Jules)
  • vérifier les références en double avec versions dans les paquets.config - même si vous essayez d'installer un complètement différentes, cette erreur peut être causée par un autre package de problème. J'ai essayé d'installer OctoPack, et a obtenu cette erreur mais elle a été causée par Système.Spatiale. Mes paquets.config eu ces deux lignes:

    <package id="System.Spatial" version="5.6.2" targetFramework="net45" />

    <package id="System.Spatial" version="5.6.4" targetFramework="net45" />

9
répondu John 2017-02-02 12:34:10

j'ai eu le même problème. Il n'arrêtait pas de me dire qu ' "un article avec la même clé a déjà été ajouté", même s'il n'était pas dans mes références et pas dans mon packages.configsoit.

finalement j'ai réussi à le corriger en montrant tous les fichiers de Visual Studio. À l'intérieur de l' bin dossier j'ai alors trouvé une référence à la .dll j'essayais de l'installer par L'intermédiaire de Nuget. Après avoir enlevé celui-ci, le problème a disparu.

peut-être que cela vous arrange aussi.

4
répondu Jules 2015-11-10 16:34:21

j'ai aussi été confronté au même problème. J'ai retiré le paquet et l'article suivant du Web.Fichier de configuration, puis installé le paquet retour-Problème résolu!

nom de la section="ajaxControlToolkit" type="AjaxControlToolkit.AjaxControlToolkitConfigSection, AjaxControlToolkit"

0
répondu shamal 2016-05-04 09:22:18

si l'on brouille dans le monde de la bibliothèque.net Core et .net Standard Portable Class, ces types d'erreurs se produisent trop souvent.

pour moi, j'empaquette généralement toutes mes préoccupations transversales comme mes propres paquets modulaires. Je constate que si mes paquets contiennent beaucoup d'autres dépendances, il suffit d'ajouter la dépendance paquet en modifiant le projet.la section des dépendances de json est incroyablement buggée, donnant le comportement décrit ci-dessus.

trop souvent, la réponse est pour supprimer toutes les dépendances et en utilisant L'outil de gestion des paquets NuGet approprié pour ajouter les paquets de mon flux privé qui résultera dans la boîte de dialogue Termes et conditions pour les dépendances externes de Microsoft à rendre.

il n'est pas rare de devoir supprimer et recréer complètement le CLI!

.Net Core et Standard is ne devraient jamais être marqués RTM. Avec un peu de chance tout ira mieux quand .Net standard 2.0 deviendra une réalité mais pour l'instant si vous êtes en prenant un coup de main à la construction avec .net Standard et Core je sais exactement ce que vous vous sentez en ce moment et j'espère que cette réponse vous sert bien...

0
répondu Sarel Esterhuizen 2017-11-22 17:08:16

cela m'a fait marcher pendant la majeure partie de la journée. Même problème en essayant d'installer un paquet. J'ai finalement essayé d'installer un paquet différent avec le même résultat. S'avère que TOUTES les duplications dans les forfaits.config (avec différentes versions) causera cette erreur. J'ai supprimé les anciennes versions des deux doublons, et maintenant je peux installer des paquets à nouveau.

0
répondu Jeff Reichard 2018-06-19 20:02:15