当找不到项目所请求 .NET 版本的 .NET 引用程序集时,会发生此错误。 检查项目是否引用了
Microsoft.NETFramework.ReferenceAssemblies
NuGet 包。 请参阅
.NET Framework 目标包 Nuget 包
。 或者,项目文件可能存在问题,因为无法识别或未安装其所请求的版本。 或者,可能存在安装问题,即该 .NET 版本的引用程序集文件夹不存在或已损坏。
项目文件框架标识符和版本
检查项目文件的
TargetFramework
、
TargetFrameworks
、
TargetFrameworkIdentifier
或
TargetFrameworkVersion
属性中是否没有拼写或输入错误。 例如,项目文件中的以下代码生成
MSB3644
:
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == ''">
<TargetFrameworkIdentifier>.NETCORAPP</TargetFrameworkIdentifier>
<TargetFrameworkVersion>3.1</TargetFrameworkVersion>
</PropertyGroup>
该问题表明 TargetFrameworkIdentifier
拼写错误。 应是 .NETCOREAPP
,而不是 .NETCORAPP
(注意缺少“e”)。
在利用 TargetFrameworks
属性和多个目标框架时,请确保它们之间用正确的分隔符 ;
分隔。 例如,尝试使用 ,
分隔符分隔框架时,将发生 MSB3644
。 以下是正确的语法示例:
<PropertyGroup>
<TargetFrameworks>net6.0;net5.0;netcoreapp3.1</TargetFrameworks>
</PropertyGroup>
引用程序集文件夹
接下来,记下 TargetFramework
、TargetFrameworkIdentifier
和 TargetFrameworkVersion
中请求的框架标识符和版本,并在本地驱动器上查找该版本的引用程序集文件夹。 例如,在 Windows 上,.NET Core 的 32 位引用程序集应位于 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore 下,而其 64 位 .NET Framework 引用程序集文件夹应位于 C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework 下。 如果项目所需版本的文件夹不存在或已损坏,则可能需要安装或重新安装该版本。 你可以通过下载 .NET 安装所需的版本。
引用程序集