为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
森林海 2022-06-12 15:03:13
使用 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),但还是会出现这种情况。
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

似乎您有 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软件包。


查看完整回答
反对 回复 2022-06-12
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

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. 这些csproj文件PackageReference仅包含顶级依赖项的元素。

在旧csproj格式中,您必须明确包含每个源文件。在新格式中,所有源文件都会自动包含在内,从而生成一个非常易于编辑的文件。

做出这些改变并非易事。直到最近,这还是一个手动过程。就个人而言,我只是删除了所有内容,复制了最小的 XML 并添加了包引用,直到我成功构建。即使那样,我也不得不手动添加有关包含/排除/copty-to-output 文件的行。如果我有带有条件等的自定义构建步骤,事情会变得更加困难。


查看完整回答
反对 回复 2022-06-12
  • 2 回答
  • 0 关注
  • 653 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号