Cannot add part for the specified URI because it is already in the package

依然范特西╮ 提交于 2019-12-06 19:50:43

问题


I am using NUGET Pack in teamcity to build a package. But it is creating the following error. I am using nuget teamcity version 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

Please guide what I am missing here.


回答1:


I had the same error but there were no issues in the csproj file. I was using typescript and was accidentally checking in the .js files. So at run-time another js file was being generated, thus there were two of each js files being added.

I found it by going through the team city build log and looking for duplicates. As they were "do not copy" there was no issue with a simple msbuild but as we just switched to using Octopack, cannot add multiple when nugeting a solution.....

You can find the culprit (typescript or otherwise) as it will be the first to appear after the "attempting to create line" (there could be many but finding them on at a time could be easier than doing it manually)




回答2:


Edit the project file and make sure you do not have duplicate Reference Incudes or duplicate Content Includes. My issue was I had...

    <Reference Include="SCS.PickList, Version=1.7.0.0, Culture=neutral, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>Bin\SCS.PickList.dll</HintPath>
</Reference>

AND

<Content Include="Bin\SCS.PickList.dll" />

Once I removed the Content include it worked.




回答3:


One possible problem could be that Octopack is actually case sensitive. In my case VS Project had reference to the file with name in lower case letters such as this




回答4:


In my .nuspec file I had the lines equivalent to:

<file src="Source\MyCompany.ProjectA\**\*.cs" target="src" />
<file src="Source\MyCompany.ProjectB\**\*.cs" target="src" />

I got the error due to the AssemblyInfo.cs file being in both projects.

(This was to enable the creation of a NuGet Symbol Package.)




回答5:


For me, it was because my files didn't have extensions.

<file src=".\LICENSE" target="" />
<file src=".\NOTICE" target="" />

My solution was to add a wildcard to the end of the file:

<file src=".\LICENSE*" target="" />
<file src=".\NOTICE*" target="" />



回答6:


In your nuspec file do you have a file node specified?

<files>
    <file src="the_dll_for_your_csproj"/>
</files>

If so, is it possible that you have included (either explicitly or by wildcard) the dll for the csproj you are trying to build?



来源:https://stackoverflow.com/questions/15809704/cannot-add-part-for-the-specified-uri-because-it-is-already-in-the-package

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!