降级.NET Framework导致程序包问题

时间:2018-07-17 13:41:26

标签: c# .net visual-studio nuget nuget-package

我正在研究TFS上的一个项目。该项目是在VS 2017和最新的.NET框架上在其他人的PC上创建的,并已发布到Azure。

我在PC上安装了该项目,安装了VS 2015,并且不得不将项目的.NET框架更改为4.6。一切都很好,我可以更改项目并提交。

但是当我尝试从PC发布到Azure时,出现了一个非常不清楚的错误:

Publish Failed
Connecting to ...

要在线寻找解决方案,我不得不将软件包Microsoft.Net.Compilers的版本从2.6.1降级为2.4.0。那行得通!

我关闭了电脑。第二天,当我打开项目并运行它时,我在本地收到此错误:

Could not load file or assembly 'Microsoft.ApplicationInsights, Version=2.6.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

我尝试卸载Microsoft.ApplicationInsights并用版本2.6.1重新安装,但它说我需要a newer version of nuget

我不确定如何从这里继续。我已经在我的工具-> 扩展-> 更新中安装了所有更新,但没有任何更改。

为什么所有这些事情都发生在我的项目中,我该如何解决?

PS:由于许多外部原因,当前无法将VS升级到2017。 谢谢。

2 个答案:

答案 0 :(得分:0)

我在本地也遇到了该错误,实际上可以通过手动将文件添加到我的项目文件夹中来解决,也许值得一试。

答案 1 :(得分:0)

  

降级导致包问题的.NET Framework

就像汉斯所说,nuget包变化非常快,这通常需要最新版本的NuGet。软件包中的某些新功能仅受较新的NuGet支持(如PackageReference)或较新版本中已解决的一些问题。例如,在Visual Studio 2015上安装软件包Microsoft.EntityFrameworkCore.SqlServer 2.1.1,该软件包需要NuGet客户端版本“ 3.6.0”或更高版本。

因此,此问题的解决方法是使用Visual Studio 2015创建一个新项目,从以前的项目中复制代码,然后一个个地添加这些nuget包,以找出需要较新版本nuget的原因。

但是,我想就此问题进行更多讨论,解决此问题的最佳方法是将Visual Studio 2017与Visual Studio 2015一起安装。众所周知,不建议使用较低版本的Visual Studio和.net框架来打开较高版本的Visual Studio和.net框架,因为它总是会带来很多不兼容错误和其他一些奇怪的问题。由于出于多种外部原因,目前无法将Visual Studio升级到2017,因此建议您将Visual Studio 2017与Visual Studio 2015一起安装。此外,使用不同版本的Visual Studio开发相同的项目并将其提交给Visual Studio。 TFS服务器可能会带来很多不可预测的风险。

希望这会有所帮助。