2012-12-07 46 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

相关问题