【问题标题】:How do I target .NET Standard 2.0 from my .NET Framework project in Visual Studio? [duplicate]如何在 Visual Studio 中从我的 .NET Framework 项目定位 .NET Standard 2.0? [复制]
【发布时间】:2022-01-21 23:57:33
【问题描述】:

我有一个 .NET Framework 4.8 C# 类库项目,我想以 .NET Standard 2.0 为目标,以便与新的 .NET 6 项目进行互操作。在 Visual Studio 的项目设置中(在 2019 年和 2022 年都尝试过,结果相同),没有针对 .NET Standard 的选项。

如果我选择“安装其他框架”,它会将我带到 .NET 下载页面。此页面上的 .NET Standard 部分说

.NET Standard 是 .NET API 的正式规范,旨在用于所有 .NET 实现。要在您的项目中以 .NET Standard 为目标,请安装 .NET/.NET Core 表中的 SDK 之一。

这是该表的屏幕截图。令人困惑的是,甚至没有列出适用于 VS 2022 或 .NET 6 的 SDK。

我决定运行dotnet --list-sdks 来查看我已经安装的内容,我得到了这个。

3.1.416 [C:\Program Files\dotnet\sdk]
5.0.203 [C:\Program Files\dotnet\sdk]
5.0.210 [C:\Program Files\dotnet\sdk]
5.0.303 [C:\Program Files\dotnet\sdk]
5.0.403 [C:\Program Files\dotnet\sdk]
5.0.404 [C:\Program Files\dotnet\sdk]
6.0.101 [C:\Program Files\dotnet\sdk]

看来我已经准备好从这个项目中以 .NET Standard 2.0 为目标,但我认为 Visual Studio 没有办法做到这一点。我对这个过程的不直观感到沮丧。我该如何进行?

【问题讨论】:

  • 你需要一个 SDK 风格的项目。最好从“类库”项目模板开始。或this
  • 谢谢。我最终选择了upgrade assistant CLI tool 的路线,其中包括转换为 SDK 风格的项目

标签: .net .net-standard .net-standard-2.0


【解决方案1】:

您始终可以尝试在 .csproj 中手动设置它,方法是将 TargetFramework 属性的值替换为 netstandard2.0

<PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>

【讨论】:

  • 很有趣,这是我在发布后尝试的第一件事,但现在项目的所有依赖项都在向我吐槽。我要试试(升级助手)[docs.microsoft.com/en-us/dotnet/core/porting/…,不知什么原因我花了很多时间挖掘发现
  • 哪些依赖项?并非 .NET 4.8 中的所有内容都存在于 Standard 2.0 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
  • 2018-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多