我有一个使用 .NET 4.6.1 实现的项目。我使用TFS构建该项目。构建任务之一是从该项目中创建一个nuget包,因为它包含其他项目使用的共享代码。我最近需要将 Newtonsoft.Json 的版本从v9.0.1升级到v12.0.1(我添加了一些新功能,迫使我升级了Newtonsoft.Json的版本)。
我现在收到错误'Newtonsoft.Json'已经在创建nuget包的构建任务中为'Microsoft.CSharp'定义了依赖项。
这是用于创建nuget包的build命令。
NuGet.exe pack "Common.csproj" -OutputDirectory "\packages\Common" -Properties Configuration=Release -version 1.2.3.4
这是packages.config文件。
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.IdentityModel.Logging" version="1.1.2" targetFramework="net461" />
<package id="Microsoft.IdentityModel.Tokens" version="5.1.2" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net461" />
<package id="Sendgrid" version="9.9.0" targetFramework="net452" />
<package id="System.IdentityModel.Tokens.Jwt" version="5.1.2" targetFramework="net461" />
<package id="System.Net.Http" version="4.0.0" targetFramework="net452" />
<package id="Twilio" version="5.23.0" targetFramework="net461" />
</packages>
我看过了这个question,但是这些答案都不适用。
我们的构建服务器正在使用nuget版本3.2.1.10581
答案 0 :(得分:0)
对于遇到此问题的其他人:
我们在生成服务器上更新了Visual Studio,这破坏了Nuget还原。我们发现我们需要在任务列表的开头添加一个名为NuGet Tool Installer
的任务,以使其强制使用5.4.0版本,因为自动发现选择的是较旧的版本并失败了。
此功能正常运行并还原了软件包后,便无法打包我们的源以进行分发。因此,我们拥有NewtonSoft.Json的最新的NuGet.exe,.NET Framework参考(即不是netstandard),但仍然无法正常工作。我们以前使用的是NuGet Packager
。我不能完全确定何时不建议使用该任务,但是直到VS更新,它仍然对我们有用。有一个名为NuGet
的新任务,其中包含用于不同功能的下拉菜单。
选择Pack
,并配置字段以模仿不推荐使用的任务导致成功构建的内容。