我在Visual Studio 2019中有很多C#项目的解决方案。我需要把所有项目从.NET Framework 4.5.1重新定位到4.8,是否可以一次性更改目标,还是必须逐个进行更改?
PS:我尝试过“TargetFrameworkMigrator”,但它不支持(VS2019)/ .net 4.8。
谢谢您的帮助。
我在Visual Studio 2019中有很多C#项目的解决方案。我需要把所有项目从.NET Framework 4.5.1重新定位到4.8,是否可以一次性更改目标,还是必须逐个进行更改?
PS:我尝试过“TargetFrameworkMigrator”,但它不支持(VS2019)/ .net 4.8。
谢谢您的帮助。
很不幸,VS并没有为.NET框架提供一种简单的方式,每个项目文件都有自己的设置。因此最简单的方法可能是在VS中的目录上执行“编辑->查找和替换->在文件中替换”,或者使用您喜欢的任何文本编辑器。
对于Framework项目,在每个.csproj
文件中,您需要将<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
更改为<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
,如果您有packages.config
文件,则需将其中的targetFramework="net451"
更改为targetFramework="net48"
,更改后您需要重新加载解决方案,以便VS看到更改。
<compilation><assemblies>...
和<runtime><assemblyBinding>...
中的所有程序集版本吗? - SukhjeevanPrefer32Bit
属性并修改了.csproj文件中的Project ToolsVersion
,还修改了我的app.config文件。 - Mr. Boy<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
使用
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
我查看了Git上的PR,你并不孤单。有人已经发布了一个与.NET 4.8
和VS2019
兼容的发行包。
这里是OPEN PRs,等待合并:
发布版适用于VS2019,根据提交和评论来看,它实际上能运行。试一下吧。
目标框架迁移器现在可用于Visual Studio 2019和.Net 4.8。不幸的是,它不适用于Core或.Net 5 / 6...
请记住,使用文本编辑器更新XML节点<TargetFrameworkVersion>
值听起来很好,但需要考虑.csproj文件的旧格式也存储了nuget依赖项的目标框架版本,这些依赖项应该进行更新以减少意外运行时错误的可能性。
在更新项目的目标框架之后,您应该重新安装所有的nuget包。VS会提示这样做,但您也可以检查一下:如何重新安装NuGet包
<TargetFramework>
或<TargetFrameworks>
在单个位置完成所有操作,通常是Directory.build.props
。 - Marc Gravell