When running the NuGet pack command I get the error: 'AutoMapper' already has a dependency defined for 'NETStandard.Library'

When running the NuGet pack command I get the error: 'AutoMapper' already has a dependency defined for 'NETStandard.Library'

我在打包自己的 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.102.0\agent\worker\tools\NuGet.exe pack "C:\a\s\Project.csproj" -OutputDirectory "C:\a\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.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\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

我能够 fix/workaround 通过放入 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

您需要为您的 visual studio 版本安装新的 Nuget 版本。

从这里获取 Nuget gallery

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