2012-12-07 7 views
6

Obecnie jestem tworzenia pakietu Nuget z nuspec pliku, ale otrzymuję następujący błąd:Element z tym samym kluczem został już dodany Nuget error

An item with the same key has already been added. 

Moje polecenie używam jest:

nuget pack "MyProject.csproj" -o "..\Packages"

to mój nuspec file:

<?xml version="1.0"?> 
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> 
    <metadata> 
     <id>$id$</id> 
     <version>$version$</version> 
     <title>$title$</title> 
     <authors>$author$</authors> 
     <owners>$author$</owners> 
     <requireLicenseAcceptance>false</requireLicenseAcceptance> 
     <description>$description$</description> 
     <language>$language$</language> 
    </metadata> 
    <files> 
     <file src="bin\MyLibrary*.dll" target="lib\net45" /> 
    </files> 
</package> 

plik nuspec używam jest również stosowany przy pakowaniu innych pakietów withing ta sama biblioteka. Czy to może być przyczyną powyższego błędu? Jakieś pomysły?

Odpowiedz

6

Możliwe, że dodajesz pliki w Nuspec, które są również dodawane podczas wywoływania pakietu w .csproj (pliki/biblioteki dll przywoływane przez csproj). Jeśli tak, możesz usunąć odniesienia do pliku z pliku Nuspec i spróbować. Jak wygląda twój plik nuspec?

Stworzyłem ją z następujących etapów
1. Utworzyć MyLibrary projekt
2. Dodam zależność, zainstalowałem ninject pakiet do projektu
3. build
4. Nuget Spec mylibrary.csproj
5. nuspec plik wygenerowany, nie dodać dowolny plik lub uzależnienia ręcznie do pliku
6. mylibrary.csproj Nuget paczka
7. Nuget paczka będzie automatycznie dodać ninject jako zależność, a także dodać do mylibrary.dll poprawny folder
8. http://npe.codeplex.com/ to ładne narzędzie do otwierania pliku nupkg i sprawdzania, co zostało wygenerowane w pakiecie.

+0

Dodałem teraz plik Nuspec do mojego pytania. Tak, co zostało opisane, jest poprawne. Jednak jeśli usunę odwołania do plików z mojego pliku Nuspec, nie zostaną one zainstalowane w projekcie zużywającym. Czy będą? – amateur

+0

zaktualizował odpowiedź, jeśli to pomaga. – Deepak

3

Miałem ten błąd próbując użyć wizualizatora pakietów i okazało się, że mój pakiet packages.config miał tę samą nazwę pakietu w nim więcej niż raz z różnymi wersjami.

+1

Jaka jest Twoja sugestia? Czy możesz wyjaśnić to szczegółowo? – VicJordan

+1

@VicJordan: Zakładam, że usunął duplikat. – kkm

Powiązane problemy