【问题标题】:How to create new project with Visual Studio 2017 that will target .NET Core 2.1.6 SDK如何使用面向 .NET Core 2.1.6 SDK 的 Visual Studio 2017 创建新项目
【发布时间】:2018-12-01 06:23:44
【问题描述】:
当我尝试在 Visual Studio 2017 中创建新项目(任何类型)时,我只能针对 2.1 .NET Core 的主要版本,并且无法从 NuGet 包管理器进行更新到 2.1.6 .NET Core 的最新版本。
NuGet 包管理器中有一点:
SDK 隐式引用。要更新包,请更新它所属的 SDK。 Learn more
在“了解更多”中指出我需要安装最新版本的 SDK,我已经安装了,但无论如何无法更新现有版本,也无法使用最新版本创建新项目。
那么问题是如何做到这一点?
还是我错过了什么?
【问题讨论】:
标签:
visual-studio-2017
.net-core-2.1
【解决方案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 的 Release 版本,此选项将被取消选中。如果您使用的是 VS 的预览版,则默认情况下会选中此项。您可以随时根据自己想要的行为自行切换。