Cannot add part for the specified URI because it i

2019-04-21 12:34发布

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.

6条回答
看我几分像从前
2楼-- · 2019-04-21 13:16

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) enter image description here

查看更多
迷人小祖宗
3楼-- · 2019-04-21 13:25

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?

查看更多
相关推荐>>
4楼-- · 2019-04-21 13:26

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="" />
查看更多
甜甜的少女心
5楼-- · 2019-04-21 13:29

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.

查看更多
做个烂人
6楼-- · 2019-04-21 13:29

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

查看更多
你好瞎i
7楼-- · 2019-04-21 13:33

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.)

查看更多
登录 后发表回答