vs2022,python,找不到 .NETFramework,Version=v4.0 的引用程序集。

旧的vs2019创建的python 项目,用vs2022打开编译出现如下错误。

严重性	代码	说明	项目	文件	行	禁止显示状态
错误		找不到 .NETFramework,Version=v4.0 的引用程序集。要解决此问题,请为此框架版本安装开发人员工具包(SDK/目标包)或者重新定向应用程序。可在 https://aka.ms/msbuild/developerpacks 处下载 .NET Framework 开发人员工具包	DTrms.V2.DingNotification	C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets	1217	

根据refs这是一个bug,可用的workaround,是手动添加到项目文件xx.pyproj中:

  <PropertyGroup>
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <TargetFrameworkMoniker>.NETFramework,Version=$(TargetFrameworkVersion)</TargetFrameworkMoniker>
  </PropertyGroup>

另外:根据python环境判断是否要重新创建虚拟环境。

refs:

https://github.com/Microsoft/PTVS/issues/6747