CI CD TFS 2013 - TFS 服务器构建上的 Nuget 自动恢复

Posted

技术标签:

【中文标题】CI CD TFS 2013 - TFS 服务器构建上的 Nuget 自动恢复【英文标题】:CICD TFS 2013 - Nuget auto restore on TFS Serer build 【发布时间】:2021-04-04 23:26:18 【问题描述】:

CICD TFS 2013 - Nuget 在 TFS Serer MSbuild 上自动恢复(不在 Visual Studio 中):

我在解决方案文件夹中添加了 NuGet.config 文件。但是在 TFS Build 上自动恢复 NuGet 它不起作用。

错误:

enter image description here

$/Core/testCICD/Webtest/Webtest.sln - 5 error(s), 1 warning(s), View Log File
 Default.aspx.cs (8): The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?)
 Default.aspx.cs (9): The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?)
 Model\Account.cs (1): The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?)
 Model\Account.cs (12): The type or namespace name 'JsonProperty' could not be found (are you missing a using directive or an assembly reference?)
 Model\Account.cs (12): The type or namespace name 'JsonPropertyAttribute' could not be found (are you missing a using directive or an assembly reference?)
 C:\Program Files (x86)\MSBuild\12.0\bin\amd64\Microsoft.Common.CurrentVersion.targets (1697): Could not resolve this reference. Could not locate the assembly "Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

【问题讨论】:

您能否更好地格式化您的问题 - 以便将错误代码与您的文本分开?现在很难阅读。 这个问题怎么样?下面的答案是否解决了您的问题,如果是,您可以Accept it as an Answer,这样它可以帮助遇到相同问题的其他社区成员,我们可以存档这个帖子,谢谢。 【参考方案1】:

CICD TFS 2013 - 在 TFS Serer 构建上自动恢复 Nuget

根据错误信息,表明您在项目中使用了Newtonsoft.Json, Version=12.0.0.0

AFAIK,从Newtonsoft.Json 9.0.1开始,这个包支持目标框架.NETStandard

https://www.nuget.org/packages/Newtonsoft.Json/9.0.1:

NuGet 2.12 支持。

因此,要解决此问题,您应确保 nuget.exe 版本高于 2.12 并且 Visual Studio 版本高于 2013

要解决此问题,您可以将 Visual Studio 2013 更新到 Visual Studio 2015 及更高版本,然后使用 MSBuild 任务指定 MSBuild 14.0(或更高版本)来构建您的项目。

或者您可以在您的项目中使用Newtonsoft.Json 8.0.3 而不是12.0.x

【讨论】:

不工作:我说的是在 tfs server 2013 上自动构建。不在视觉工作室中。

以上是关于CI CD TFS 2013 - TFS 服务器构建上的 Nuget 自动恢复的主要内容,如果未能解决你的问题,请参考以下文章

TFS 2013 使用动态解决方案计数构建定义

部署 + 桌面应用程序 + TFS 2017

目标计算机上的 PowerShell 在 TFS 2018 发布管道中失败

将 StyleCop 与 TFS CI 集成的最佳方式

TFS Build 2013 避免代码分析

TFS Online Git - CI基于特定文件夹签入