【问题标题】:Is SDK style project the recommended approach for new .Net Framework projects?SDK 样式项目是新的 .Net Framework 项目的推荐方法吗?
【发布时间】:2021-06-22 12:24:22
【问题描述】:

我正在开发一个包含 20 个项目(以及其他 WPF)的 .Net Framework 4.8 解决方案。 我们正在讨论是否应该现在将我们的项目转换为 SDK 样式以获得新的和改进的项目格式。

新的 SDK 样式是否是新 .Net Framework 项目的推荐方法?还是它主要用作转换为 Core 的一个步骤?我找不到任何来自 Microsoft 的东西说你应该这样做,并且 Visual Studio 中的新项目仍然使用旧格式创建。 有什么理由不转换为 SDK 样式吗?

【问题讨论】:

  • (新版本的 VS 现在至少让您更倾向于所有 .NET 项目的 SDK 样式 csproj,但仍不完全清楚)
  • 是的。几乎没有理由使用旧样式的 csproj:SDK 样式的项目应该是所有目标框架、.NET Framework、.NET Core、.NET 5+ 等的默认设置
  • @canton7 你是什么意思他们推动你使用 SDK 风格?在创建 .Net Framework 类库时,我在 VS2022 Preview 中找不到使用 SDK 样式的选项。
  • 这就是重点:它不再被特别提及(如果您选择“.NET Core 项目”,您过去只能获得 SDK 样式的 csproj)

标签: c# visual-studio-2019 csproj


【解决方案1】:

新建项目,可以使用新的SDK风格(通用项目系统)。它适用于大多数项目类型,但不是所有项目类型。

here我们可以知道,.NET Framework 的 Default 项目格式是 Non-SDK-style,.NET Core 和 .NET Standard 是 SDK-style。

我认为如果没有必要,.NET Framework 可能暂时不会使用 SDK 样式。用于创建 sdk 风格的 .net 框架项目。我们需要手动设置。

例如,您可以创建一个类库(.NET 标准)项目并修改 csproj 文件。

初始文件:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>
</Project>

您可以将其编辑为:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
     <TargetFramework>net48</TargetFramework>
  </PropertyGroup>
</Project>

然后,你可以得到一个 sdk 风格的 .net 框架项目。

SDK-style为工程格式,可能与.NET Framework转.NET Core无关。

如果需要,您可以将旧的 .NET Framework 项目迁移到 .NET Core 项目。移植项目可以参考Considerations when portingWindows desktop technologies

【讨论】:

  • 请注意,最新版本的 VS 现在在创建新的 SDK 样式的 csproj 时会提示您选择目标框架,并且不再称为“.NET Core 项目”
  • @canton7 你说的是哪个版本的VS?我在最新的 VS2019 Pro 和 VS2022 Preview 上,他们都有传统的项目。类库 (.Net Framework) 或类库(针对标准和核心)。据我所知,这里没有自动获取 .Net Framework 的 SDK 样式项目。
  • @hui-liu-mfst 感谢您的详细解答!我知道对于每个人都没有绝对的答案。默认项目的链接确实指向现在使用旧版本。
  • @amgravem 没错,但它现在被称为“类库”而不是“.NET Core 类库”(或任何旧名称)
  • 我们能否在同一个解决方案中同时拥有经典的 csproj 和 sdk 风格的 csproj 文件?
猜你喜欢
  • 1970-01-01
  • 2014-10-11
  • 2011-05-31
  • 2011-04-15
  • 2017-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多