MSB3644 диагностический код

В этой статье описывается код ошибки MSB3644.

Текст сообщения

MSB3644: The reference assemblies for 'value' 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

Описание

Эта ошибка возникает, когда эталонные сборки .NET не найдены для версии .NET, запрашиваемой проектом.

Эта ошибка может возникнуть, если проект запрашивает версию сборки, которая не распознана или не установлена. Ошибка также возникает, когда папка ссылочных сборок для требуемой версии .NET повреждена или отсутствует.

Резолюция

Убедитесь, что проект ссылается на пакет NuGet Microsoft.NETFramework.ReferenceAssemblies . Дополнительные сведения см. в статье .NET Framework, предназначенная для пакетов NuGet.

Идентификатор и версия платформы файлов проекта

Проверьте файл проекта на наличие орфографических или типографических ошибок в TargetFrameworkсвойствах или TargetFrameworks свойствах. TargetFrameworkIdentifierTargetFrameworkVersion

Например, следующий код в файле проекта вызывает ошибку 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 32-разрядные эталонные сборки для .NET Core должны находиться в папке C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. Папка NETCore . Для 64-разрядной версии папки эталонных сборок .NET Framework должны находиться в папке C:\Program Files\Reference Assemblys\Microsoft\Framework\. Путь NETFramework .

Если папка для версии проекта отсутствует или повреждена, может потребоваться установить или переустановить версию сборки. Вы можете установить требуемую версию при загрузке .NET. Дополнительные сведения см. в статье Базовые сборки.

Применимо к

Все версии MSBuild