以前用 Visual Studio 2019,打开新生命 NewLife.Core 源码没问题,现在升级到 VS2022 了,却遇到了编译报错:
Error MSB3644 The reference assemblies for .NETFramework,Version=v4.5 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application.
You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks NewLife.Core C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets 1229
原来 VS2022 默认不再支持 .NET4.5 ,即使在 Visual Studio Installer 中也找不到 .NET4、.NET4.5、.NET4.5.1 的选项。
已经验证的解决方法就是手动下载 NuGet 包,解压缩并复制到“引用程序集”目录(Reference Assemblies),再重启 VS2022 即可。
适用于 .NET 4.0 的 NuGet 包:
https://www.nuget.org/packages/microsoft.netframework.referenceassemblies.net40
适用于 .NET 4.5 的 NuGet 包:
https://www.nuget.org/packages/microsoft.netframework.referenceassemblies.net45
一般情况下,引用程序集目录是:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework
以 .NET 4.5 为例:
- 在下载好包文件后,以压缩包形式打开 nupkg 文件。
- 将
build\.NETFramework\v4.5\
路径下的文件复制到C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5
- 重启 Visual Studio 即可正常编译。
安装后的目录应该是这个样子:
你也可以在以下网址中找到更多版本的开发者工具包:
https://www.nuget.org/packages?q=Microsoft.NETFramework.ReferenceAssemblies