运行NuGet pack命令时,我收到错误:' AutoMapper'已经为“NETStandard.Library”定义了依赖关系。

时间:2016-07-09 02:21:40

标签: nuget automapper azure-devops azure-pipelines .net-4.6.1

我在打包自己的nuget包时遇到问题,其中包括AutoMapper 5.0.2。这只会在Visual Studio Team Services(VSTeam)构建服务器中产生错误。

我的项目使用的是.NET 4.6.1

关于如何修复的任何想法?

这是错误:

2016-07-08T23:46:44.5801667Z C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.102.0\agent\worker\tools\NuGet.exe pack "C:\a\1\s\Project.csproj" -OutputDirectory "C:\a\1\s\Project\bin\release" -Properties Configuration=release -IncludeReferencedProjects 
2016-07-08T23:46:45.0458195Z MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'.
2016-07-08T23:46:45.0468395Z Attempting to build package from 'Project.csproj'.
2016-07-08T23:46:45.1942694Z Packing files from 'C:\a\1\s\Project\bin\Release'.
2016-07-08T23:46:45.3942642Z ##[error]**'AutoMapper' already has a dependency defined for 'NETStandard.Library'.**
2016-07-08T23:46:45.4142626Z ##[error]System.Exception: Unexpected exit code 1 returned from tool NuGet.exe
2016-07-08T23:46:45.4152639Z ##[error] at Microsoft.TeamFoundation.DistributedTask.Task.Internal.PowerShell.InvokeToolCmdlet.ProcessRecord()
2016-07-08T23:46:45.4152639Z ##[error] at System.Management.Automation.CommandProcessor.ProcessRecord()

我还在GitHub上打开了一个问题:https://github.com/AutoMapper/AutoMapper/issues/1499

3 个答案:

答案 0 :(得分:9)

您需要为Visual Studio版本安装新的Nuget版本。

从这里获取它 Nuget gallery

答案 1 :(得分:4)

通过放入PowerShell脚本来下载最新的NuGet,我能够解决/解决这个问题。然后我将所有NuGet任务指向这个新的nuget.exe。优点:构建再次工作,缺点:每个构建再次下载NuGet,导致NuGet.org上的不必要的负载。

这是我的PowerShell:

$sourceNugetExe = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
$targetNugetExe = "$(build.sourcesdirectory)/nuget.exe"
Invoke-WebRequest $sourceNugetExe -OutFile $targetNugetExe
Set-Alias nuget $targetNugetExe -Scope Global -Verbose
nuget

答案 2 :(得分:0)

如果有人使用Team City,您还需要使用/安装较新版本的Nuget。