在Visual Studio中更新Nuget包后无法生成内部版本的定义

时间:2019-07-17 19:09:14

标签: visual-studio tfs nuget tfs2015

我继承了很多知识水平以外的知识,但我是这里唯一一个足够接近该知识水平的知识的人。我感觉自己很快就学会了,并且到目前为止我已经能够跳过所有障碍而无需花费太多时间,但是我只是想不通!

基本上,我们使用TFS 2015,因为我们有一个通过远程计算机(我可以远程访问)上的代理的构建定义。因此,一位开发人员使用更新的NuGet包检入了代码(Newtonsoft.Json),它破坏了构建。文件和所有内容都可以在本地构建,但构建机器人已损坏。

我在imgur上有一个屏幕快照,其中包含我的构建定义中的一些上下文,并且我们使用webhook来通过松弛链接将通知发送到错误页面,该错误页面告诉我"error: Build Not Found"所以我很困惑,在网上找不到任何可以帮助我的东西。

编辑: 在我的构建日志中,我得到了这个错误 Error CS0246: The type or namespace name 'DataSourceRequest' could not be found (are you missing a using directive or an assembly reference?)

我所有其他分支构建工作,唯一的区别是我更新了nuget软件包。我有什么办法可以升级构建代理中的nuget软件包?

构建定义的屏幕截图:

image taken from https://imgur.com/vziGUmZ

1 个答案:

答案 0 :(得分:0)

  

在Visual Studio中更新Nuget程序包后不生成内部定义

AFAIK,此问题的原因可能是您将软件包Newtonsoft.Json升级到版本9.01或更高版本。

Newtonsoft.Json 9.0.1开始,此软件包支持目标框架.NETStandard

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

enter image description here

Visual Studio 2013 NuGet 2.12 支持哪些功能:

NuGet 2.12 Release Notes

  
      
  • 对VS2013的完全NetStandard和NetCoreApp支持。
  •   

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

此外,众所周知,Visual Studio向后兼容。意味着我们可以使用较低版本的Visual Studio开发项目,也可以在代理上使用较高版本的Visual Studio进行构建。但是,如果相反,在代理上使用较高版本进行开发,而在较低版本上进行构建,则由于兼容性,我们可能会遇到一些问题。因此,如果我们认为代理上的Visual Studio版本高于您正在开发的版本,那会更好。

希望这会有所帮助。