如何将所有的解决方案项目由.Net Framework 4.5.1升级到4.8,使用Visual Studio 2019。

19

我在Visual Studio 2019中有很多C#项目的解决方案。我需要把所有项目从.NET Framework 4.5.1重新定位到4.8,是否可以一次性更改目标,还是必须逐个进行更改?

PS:我尝试过“TargetFrameworkMigrator”,但它不支持(VS2019)/ .net 4.8。

谢谢您的帮助。


1
你不能只用像Notepad++这样的文本编辑器进行搜索和替换吗? - germi
1
我们要谈论什么样的项目数量?它们是新式还是旧式的 csproj?是的,您需要更改每个项目,但您可以通过编辑 csproj 来实现这一点;如果您提前计划好,在新式 (.NET Core 样式) 的 csproj 文件中,您可以通过声明 <TargetFramework><TargetFrameworks> 在单个位置完成所有操作,通常是 Directory.build.props - Marc Gravell
5个回答

13

很不幸,VS并没有为.NET框架提供一种简单的方式,每个项目文件都有自己的设置。因此最简单的方法可能是在VS中的目录上执行“编辑->查找和替换->在文件中替换”,或者使用您喜欢的任何文本编辑器。

对于Framework项目,在每个.csproj文件中,您需要将<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>更改为<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>,如果您有packages.config文件,则需将其中的targetFramework="net451"更改为targetFramework="net48",更改后您需要重新加载解决方案,以便VS看到更改。


我们需要根据目标版本和dll版本更新<compilation><assemblies>...<runtime><assemblyBinding>...中的所有程序集版本吗? - Sukhjeevan
我使用VS2019测试了将.Net从4.0更改为4.8。它添加了一个Prefer32Bit属性并修改了.csproj文件中的Project ToolsVersion,还修改了我的app.config文件。 - Mr. Boy

9
替换所有出现的
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>

使用

<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>

在所有的*.csproj文件中。你可以使用Notepad++进行操作。

当我在VS2019中更改框架时,它会对.csproj和app.config文件进行几个其他更改。不确定它们是否重要。 - Mr. Boy

3

我查看了Git上的PR,你并不孤单。有人已经发布了一个与.NET 4.8VS2019兼容的发行包。

这里是OPEN PRs,等待合并:

4.7

4.8和VS 2019

发布版适用于VS2019,根据提交和评论来看,它实际上能运行。试一下吧。


2

目标框架迁移器现在可用于Visual Studio 2019和.Net 4.8。不幸的是,它不适用于Core或.Net 5 / 6...

请记住,使用文本编辑器更新XML节点<TargetFrameworkVersion>值听起来很好,但需要考虑.csproj文件的旧格式也存储了nuget依赖项的目标框架版本,这些依赖项应该进行更新以减少意外运行时错误的可能性。

在更新项目的目标框架之后,您应该重新安装所有的nuget包。VS会提示这样做,但您也可以检查一下:如何重新安装NuGet包


0
几年后,如果它可以帮助一些开发人员,由于Target Framework Migrator在VS2022上无法运行,现在有一个Microsoft .NET Upgrade Assistant,您可以在VisualStudio Marketplace上找到:https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.upgradeassistant&ssr=false#review-details 不幸的是,它不允许从旧的.NET FW迁移到新的.NET FW 4.8或4.8.1,而只能迁移到:.NET 6.0或7.0或8.0,.NETSTandard 2.0或2.1
更多信息请参阅Microsoft博客:https://devblogs.microsoft.com/dotnet/upgrade-assistant-now-in-visual-studio/

在安装 vsix 后,升级工具在哪里(右键单击项目): 输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接