我目前正在创建一个带有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>
在打包具有相同库的其他包时,也会使用我正在使用的nuspec文件。这可能是上述错误发生的原因吗?有什么想法吗?
答案 0 :(得分:7)
您可能正在添加nuspec中的文件,当您在.csproj上调用pack时(csproj引用的文件/ dll)也会添加这些文件。如果是这样,您可以从nuspec文件中删除文件引用并尝试一下。 你的nuspec文件怎么样?
我用以下步骤创建了它
1.创建Mylibrary项目
2.让我添加一个依赖项,我将ninject包安装到项目中
3.建造
4. nuget spec mylibrary.csproj
5.生成nuspec文件,我没有手动添加任何文件或依赖文件到文件
6. nuget pack mylibrary.csproj
7. nuget pack会自动添加ninject作为依赖项,并将mylibrary.dll添加到正确的文件夹中
8. http://npe.codeplex.com/是一个很好的工具,可以打开nupkg文件并查看包中生成的内容。