我正在研究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。 谢谢。
答案 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服务器可能会带来很多不可预测的风险。
希望这会有所帮助。