MSB3644

本文介绍MSB3644错误代码。

消息文本

MSB3644: The reference assemblies for 'FrameworkVersion' were not found.

DESCRIPTION

当找不到项目请求的 .NET 版本的 .NET 引用程序集时,会发生此错误。

如果项目请求无法识别或安装的程序集版本,则可能会看到此错误。 当所需 .NET 版本的引用程序集文件夹损坏或不存在时,也会发生此错误。

决议

验证项目是否引用 Microsoft.NETFramework.ReferenceAssemblies NuGet 包。 有关详细信息,请参阅 .NET Framework 目标包 NuGet 包

项目文件框架标识符和版本

检查项目文件中TargetFrameworkTargetFrameworksTargetFrameworkIdentifierTargetFrameworkVersion属性的拼写或版式错误。

例如,项目文件中的以下代码会导致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>

引用程序集文件夹

记下在TargetFrameworkTargetFrameworkIdentifierTargetFrameworkVersion属性中请求的框架标识符和版本,并在本地驱动器上查找该版本的引用程序集文件夹。

在 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 的所有版本