目标框架列表中缺少 .NET Core

使用 Visual Studio 2017 Enterprise,我正在尝试将单元测试项目上的目标框架更改为 .NET Core,以便我可以使用 xUnit。我在可用框架列表中没有看到它。

在我的可用框架列表中,我看到:

.NET Framework 2.0 -> 4.7.1 and several Unity Frameworks.

尽管我安装了 .NET Core SDK 2.1.200 (x64)、2.1.202 (x64) 和 2.1.500 (x64),但还是会出现这种情况。


森林海
浏览 657回答 2
2回答

青春有我

似乎您有 2 个选项,这两个选项都很简单:将您的目标框架更改为 netcoreapp*编辑您的项目文件并更改<TargetFramework>net461</TargetFramework>至<TargetFramework>netcoreapp2.1</TargetFramework>(或您希望定位的任何版本的 .NET Core。我相信 SDK 2.1.500 是 netcoreapp2.1。)在 .NET Framework 项目中使用 XUnit创建一个 .NET Framework 类库项目并安装xunitNuGet 包。然后你可以像平常一样开始使用 XUnit,它可以引用你的 web 项目。要在 VS 中运行测试,您还需要该xunit.runner.visualstudio软件包。

慕尼黑的夜晚无繁华

Visual Studio 仅显示支持的转换。虽然从 .NET Framework 转换到 .NET Core 并不像更改版本号那么简单。您可以使用try-convert对项目文件进行必要的修改。确保您--diff-only首先使用检查更改。您应该查看Nate McMaster 的迁移指南和Additions to the csproj format for .NET Core以了解更改。Microsoft 不支持该工具,也不能保证执行 100% 转换。不以任何方式支持此工具。这个工具是为谁准备的?此工具适用于希望在将项目迁移到 .NET Core(或 .NET SDK 样式的项目)时获得一点帮助的任何人。顾名思义,此工具不能保证将项目完全转换为 100% 的工作状态。该工具是保守的,并且尽其所能确保转换后的项目仍然可以加载到 Visual Studio 中并进行构建。但是,有大量因素会导致项目无法加载或构建,而该工具并未明确涵盖这些因素。这些包括:您的解决方案中可能包含的复杂的自定义构建与 .NET Core 不兼容的 API 使用不受支持的项目类型(例如 Xamarin、WebForms 或 WCF 项目)如果您的大部分代码库通常能够迁移到 .NET Core(例如许多没有特定于平台的代码的类库),那么这个工具应该会有所帮助。强烈建议您在受源代码控制的项目上使用此工具。强调我的。为什么?.NET Core 和 .NET Framework 使用非常不同的csproj格式并以不同的方式处理包引用,尤其是瞬态依赖项,即另一个包需要的包。在 .NET Frameworkpackages.config中包含所有包,这意味着您不知道真正需要哪些包。在 .NET Core 中没有packages.config.&nbsp;这些csproj文件PackageReference仅包含顶级依赖项的元素。在旧csproj格式中,您必须明确包含每个源文件。在新格式中,所有源文件都会自动包含在内,从而生成一个非常易于编辑的文件。做出这些改变并非易事。直到最近,这还是一个手动过程。就个人而言,我只是删除了所有内容,复制了最小的 XML 并添加了包引用,直到我成功构建。即使那样,我也不得不手动添加有关包含/排除/copty-to-output 文件的行。如果我有带有条件等的自定义构建步骤,事情会变得更加困难。
打开App,查看更多内容
随时随地看视频慕课网APP