当我尝试在Visual Studio 2017中创建新项目(任何类型)时,我只能定位主版本的 2.1 .NET Core ,并且无法从NuGet包管理器中进行更新升级到 2.1.6 .NET Core 的最新版本。
NuGet软件包管理器中有一个要点:
SDK隐式引用。要更新程序包,请更新其所属的SDK。 Learn more
在“了解更多信息”中指出,我需要安装最新版本的SDK,但无论如何,既不可能存在更新,也无法创建具有最新版本的新项目。
那么问题是怎么做? 还是我错过了什么?
答案 0 :(得分:1)
默认情况下,VS将使用盒子上安装的最新版本的SDK(请参见有关预览的脚注)。如果您创建一个针对2.1的项目,并且同时安装了2.1.5和2.1.6 SDK,则它将使用2.1.6。
如果您有一个从2.1.5创建的现有项目,则VS将使用2.1.6中的工具来构建和运行您的项目除非您将工具固定在global.json文件中 。在大多数情况下(对于2.0+而言更是如此),即使您仍针对较低的netcore框架版本,也应使用更新的SDK。
如果您的项目中有显式的版本引用,则仍然需要自己更新它们,而VS今天不这样做。
您可能会注意到,在ASP.NET Core 2.1项目中,没有Microsoft.AspNetCore.App PackageRference的版本(隐式)。引用here:
未指定版本时,SDK将指定隐式版本,即Microsoft.NET.Sdk.Web。
但是,有一系列GitHub问题(1,2)表明这已经过争论,并可能在某个时候发生改变。
脚注:
如果安装.NET Core SDK的预览版,则VS可能会或可能不会使用它,具体取决于此设置:
默认情况下,如果您使用的是VS的发行版,则将其取消选中。如果您使用的是VS的预览版,则默认情况下会选中它。您随时可以根据自己的行为进行切换。