我在teamcity中使用NUGET Pack来构建一个包。但它正在创建以下错误。我正在使用nuget teamcity 2.2.1版。
Step 2/2: Build Package (NuGet Pack) (14s)
[12:10:40][Step 2/2] Cleaning Z:\hgbuilds\IT\Build\packages
[12:10:40][Step 2/2] pack: Create NuGet package from UI\UI.Tour\UI.Tour.Web\UI.Tour.Web.csproj (14s)
[12:10:40][pack] NuGet command: C:\BuildAgent\tools\NuGet.CommandLine.2.2.1.nupkg\tools\NuGet.exe pack Z:\hgbuilds\IT\UI\UI.Tour\UI.Tour.Web\Calrom.UI.InclusiveTour.Web.csproj -OutputDirectory Z:\hgbuilds\IT\Build\packages -BasePath Z:\hgbuilds\IT -Verbose -Version 1.0.0.7 -Symbols -Properties Configuration=Deploy-Test
[12:10:40][pack] Starting: C:\BuildAgent\temp\agentTmp\custom_script2086270793558421822.cmd
[12:10:40][pack] in directory: Z:\hgbuilds\IT
[12:10:45][pack] WARNING: Option 'Verbose' has been deprecated. Use 'Verbosity' instead.
[12:10:45][pack] Attempting to build package from 'UI.Tour.Web.csproj'.
[12:10:45][pack] Packing files from 'Z:\hgbuilds\IT\UI\UI.Tour\UI.Tour.Web\bin'.
[12:10:46][pack] WARNING: Description was not specified. Using 'Description'.
[12:10:48][pack] content
[12:10:54][pack] Cannot add part for the specified URI because it is already in the package.
[12:10:54][pack] Process exited with code 1
[12:10:54][Step 2/2] Step Build Package (NuGet Pack) failed
请指导我在这里缺少的内容。
答案 0 :(得分:7)
我遇到了同样的错误,但csproj文件中没有任何问题。我正在使用打字稿并且意外地检查了.js文件。因此,在运行时,正在生成另一个js文件,因此每个js文件中都添加了两个。
我通过浏览团队城市构建日志并查找重复项来找到它。因为他们是"不要复制"一个简单的msbuild没有问题但是因为我们刚刚切换到使用Octopack,在编写解决方案时无法添加多个.......
您可以找到罪魁祸首(打字稿或其他方式),因为它将是第一个出现在"尝试创建行" (可能有很多,但一次找到它们可能比手动更容易)
答案 1 :(得分:4)
编辑项目文件,确保没有重复的参考输入或重复的内容包含。我的问题是我有......
<Reference Include="SCS.PickList, Version=1.7.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>Bin\SCS.PickList.dll</HintPath>
</Reference>
和
<Content Include="Bin\SCS.PickList.dll" />
一旦我删除了内容包含它就可以了。
答案 2 :(得分:2)
一个可能的问题可能是Octopack实际上是区分大小写的。在我的情况下,VS Project引用了名称为小写字母的文件 such as this
答案 3 :(得分:1)
在我的.nuspec文件中,我的行等效于:
<file src="Source\MyCompany.ProjectA\**\*.cs" target="src" />
<file src="Source\MyCompany.ProjectB\**\*.cs" target="src" />
由于 AssemblyInfo.cs 文件存在于两个项目中,我收到了错误。
(这是为了能够创建NuGet符号包。)
答案 4 :(得分:1)
对我来说,这是因为我的文件没有扩展名。
<file src=".\LICENSE" target="" />
<file src=".\NOTICE" target="" />
我的解决方案是在文件的末尾添加一个通配符:
<file src=".\LICENSE*" target="" />
<file src=".\NOTICE*" target="" />
答案 5 :(得分:0)
在您的nuspec文件中,您是否指定了文件节点?
<files>
<file src="the_dll_for_your_csproj"/>
</files>
如果是这样,您是否可能已经(明确地或通过通配符)包含了您要构建的csproj的dll?