本文介绍MSB3644错误代码。
消息文本
MSB3644: The reference assemblies for 'FrameworkVersion' were not found.
DESCRIPTION
当找不到项目请求的 .NET 版本的 .NET 引用程序集时,会发生此错误。
如果项目请求无法识别或安装的程序集版本,则可能会看到此错误。 当所需 .NET 版本的引用程序集文件夹损坏或不存在时,也会发生此错误。
决议
验证项目是否引用 Microsoft.NETFramework.ReferenceAssemblies NuGet 包。 有关详细信息,请参阅 .NET Framework 目标包 NuGet 包。
项目文件框架标识符和版本
检查项目文件中TargetFramework
、TargetFrameworks
、TargetFrameworkIdentifier
或TargetFrameworkVersion
属性的拼写或版式错误。
例如,项目文件中的以下代码会导致MSB3644错误:
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == ''">
<TargetFrameworkIdentifier>.NETCORAPP</TargetFrameworkIdentifier>
<TargetFrameworkVersion>3.1</TargetFrameworkVersion>
</PropertyGroup>
TargetFrameworkIdentifier
属性的值拼写错误。 正确的值为 .NETCOREAPP
,但缺少了 E
,如同在 CORE
中那样。
使用属性为多个目标框架 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 时安装所需的版本。 有关详细信息,请参阅引用程序集。
适用于
MSBuild 的所有版本