因项目需要,需将.net Framework4.6WPF升级到.netcore3.1/net5.0/6.0/7.0版本,通过很多办法解决,开始搞得一头雾水。终于,找到了办法。
1、首先下载upgrade-assistant工具(.net升级助手)。
2、在VS2022内进入项目中,编辑项目文件,如果该项目同时有winform,则需要加上这一句:
<UseWindowsForms>True</UseWindowsForms>
这样yourWPF.csproj有类似这样的片段:
<PropertyGroup>
<TargetFrameworks>net6.0-windows</TargetFrameworks>
<OutputType>WinExe</OutputType>
<UseWPF>true</UseWPF>
<UseWindowsForms>True</UseWindowsForms>
</PropertyGroup>
3、下面在VS中进入开发者命令行 ,弹出黑窗中输入:
upgrade-assistant upgrade yourWPF.csproj
回车,期间会有很多提示符,并让你回车或做出选择,一般情况下一律回车即可。
最后会有类似“Upgrade step Finalize upgrade applied successfully”,“Upgrade has completed.”之类的提示。说明升级成功。
4、再次回到yourWPF.csproj文件中,我们可以看到出现类似:
<ItemGroup>
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.355802">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.Windows.Compatibility" Version="7.0.0" />
</ItemGroup>
这样的片段。
5、 为了具有更广泛的适应性,我们将其中的:
<TargetFrameworks>net6.0-windows</TargetFrameworks>
改成:
<TargetFrameworks>netcoreapp3.1;net5.0;net6.0;net7.0;net7.0-windows</TargetFrameworks>
6、OK,完美解决。