Поделиться через


MSB3644: ссылочные сборки для версии платформы "FrameworkVersion" не найдены

Эта ошибка возникает, когда эталонные сборки .NET не найдены для версии .NET, запрашиваемой проектом. Убедитесь, что в проекте есть ссылка на пакет NuGet Microsoft.NETFramework.ReferenceAssemblies . См. платформа .NET Framework пакеты Nuget для целевого пакета. Кроме того, может возникнуть проблема с файлом проекта в том, что запрашиваемая версия не распознается или не установлена. Или может возникнуть проблема с установкой, что папка ссылочных сборок для этой версии .NET отсутствует или повреждена.

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

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

См. также