.NET 5 支持旧的 csproj 格式吗?

2023-12-07

从 .NET Framework 迁移到 .NET 5+ 时最大的障碍之一是必须将所有 csproj 转换为新的 SDK 样式格式。没有工具可以自动执行此操作,必须手动完成。

我想知道这个转换是否有必要?有没有办法在保留旧的 cs 项目的同时切换到 .NET?

我团队的解决方案中有 300 多个项目,看起来我们永远不会改变。工作量太大了。

我尝试手动更新 但没有成功。

也许我错过了一些东西,有办法实现这一点吗?


不是您问题的直接答案,但可能会有所帮助。我的目标不是转换为 .net 5,只是将我的项目转换为 SDK 风格。

我有四个 .net 4.0 项目的解决方案,包括一个 WPF 项目和四个 xUnit 测试项目。有一个.net升级助手我使用过,并且在“将项目转换为 sdk 样式步骤”之后就停止了。它基本上没有问题。我从这里得到了这个想法堆栈溢出帖子(请参阅已接受答案下的评论)。

上面的链接说 Visual Studio 2022 或更高版本,但我有 2019,它工作正常。我认为它表明,如果您要完全迁移到 .net 6/7,则需要 2022 年。

在转换为 SDK 之前我做的唯一一件事是更新每个项目以使用 PackageReference 而不是 packages.config。我不确定这是否重要,因为我在决定将项目转换为 SDK 样式之前就这样做了。如果右键单击该项目,您将看到一个名为“将 package.config 迁移到包引用”的命令。对所有项目执行此操作后,转到“工具”>“Nuget 包管理器”>“包管理器设置”,并在“包管理器”下将“默认包管理格式”设置为 PackageReference。看here.

然后,我一次转换每个项目一个,确保每个项目都构建正常,然后再继续下一个项目。我遇到的唯一问题是迁移助手向每个项目引用添加了更新版本的 Microsoft.CSharp。对于我的 WPF 项目,我必须删除它并替换为 .net 4.0 的版本;对于其他项目,我只需要删除它,因为它没有被使用。我不确定它为什么这样做,但认为这是为了迁移的后续步骤。

csprojs 现在干净多了。还启用项目右键菜单中的“删除未使用的引用”选项。

我还确认我也可以从命令行使用 dotnet build myProject.csproj 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET 5 支持旧的 csproj 格式吗? 的相关文章

随机推荐