2012-12-07 70 views
6

我目前正在創建一個NuGet包用nuspec文件,但得到以下錯誤:一個具有相同的鍵項已經添加的NuGet錯誤

An item with the same key has already been added. 

我用我的命令是:

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

這是我nuspec文件:

<?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> 

我使用的包裝等包裝withing的時候也使用的nuspec文件同一個庫。這可能是上述錯誤發生的原因嗎?有任何想法嗎?

回答

6

這可能是因爲您在nuspec中添加了在.csproj(csproj引用的文件/ dll)上調用pack時也添加的文件。如果是這樣,你可以從nuspec文件中刪除文件引用並嘗試一下。 你的nuspec文件是怎麼樣的?

我下面的步驟
1.創建在MyLibrary項目
2.讓我補充的依賴,我安裝ninject包項目
3.構建
4的NuGet規範mylibrary.csproj創建它
5. nuspec文件生成,我沒有手動添加任何文件或依賴於文件
6.的NuGet包mylibrary.csproj
7.的NuGet包將自動添加ninject作爲依賴,並添加到mylibrary.dll正確的文件夾
8. http://npe.codeplex.com/是一個很好的工具來打開nupkg文件,看看包裏面產生了什麼。

+0

我已經添加了nuspec文件到我的問題。是的,你所概述的是正確的。但是,如果我從我的nuspec文件中刪除文件引用,他們不會被安裝在消費項目中。他們會嗎?如果有幫助, – amateur

+0

已經更新了內聯答案。 – Deepak

3

我有這個錯誤試圖使用包可視化器,它結束了我的packages.config在其中不同版本多次有相同的包名稱。

+1

那麼你的建議是什麼?你能詳細解釋一下嗎? – VicJordan

+1

@VicJordan:我假設他刪除了重複。 – kkm

相關問題