Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This article describes the MSB3644 error code.
Message text
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
Description
This error occurs when the .NET reference assemblies aren't found for the version of .NET that a project requests.
You might see this error if your project requests an assembly version that isn't recognized or installed. The error also occurs when the reference assemblies folder for the required .NET version is corrupted or not present.
Resolution
Verify your project references the Microsoft.NETFramework.ReferenceAssemblies NuGet package. For more information, see .NET Framework targeting pack NuGet packages.
Project file framework identifier and version
Check your project file for spelling or typographical errors in the TargetFramework
, TargetFrameworks
, TargetFrameworkIdentifier
, or TargetFrameworkVersion
properties.
For example, the following code in a project file causes the MSB3644 error:
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == ''">
<TargetFrameworkIdentifier>.NETCORAPP</TargetFrameworkIdentifier>
<TargetFrameworkVersion>3.1</TargetFrameworkVersion>
</PropertyGroup>
The value for the TargetFrameworkIdentifier
property is misspelled. The correct value is .NETCOREAPP
with the missing E
as in CORE
.
When you specify values for multiple target frameworks with the TargetFrameworks
property, be sure to separate the values with a semi-colon (;
). If you use an invalid delimiter, such as a comma (,
), the system generates the MSB3644 error.
Here's an example of the correct syntax:
<PropertyGroup>
<TargetFrameworks>net6.0;net5.0;netcoreapp3.1</TargetFrameworks>
</PropertyGroup>
Reference assemblies folder
Note the framework identifier and version requested in the TargetFramework
, TargetFrameworkIdentifier
, and TargetFrameworkVersion
properties, and look for the reference assembly folder for that version on the local drive.
On Windows, the 32-bit reference assemblies for .NET Core should be located in the C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore folder. For 64-bit, the .NET Framework reference assembly folders should be located in the C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework path.
If the folder for the version your project needs isn't present or appears corrupted, you might need to install or reinstall the assembly version. You can install the required version at Download .NET. For more information, see Reference assemblies.
Applies to
All versions of MSBuild