MSB3644 : Les assemblys de référence pour « FrameworkVersion » sont introuvables

Cette erreur se produit lorsque les assemblys de référence .NET sont introuvables pour la version de .NET qu’un projet demande. Vérifiez que votre projet contient une référence au package NuGet Microsoft.NETFramework.ReferenceAssemblies. Consultez Packages NuGet ciblant .NET Framework. Vous pouvez également rencontrer un problème avec le fichier projet, car la version demandée n’est pas reconnue ou non installée. Ou bien, il peut y avoir un problème d’installation lié au fait que le dossier d’assemblys de référence pour cette version de .NET n’est pas présent ou a été endommagé.

Identificateur et version de l’infrastructure de fichiers projet

Vérifiez qu’il n’y a aucune erreur d’orthographe ou de typographie dans le fichier projet dans les propriétés TargetFramework, TargetFrameworks, TargetFrameworkIdentifier ou TargetFrameworkVersion. Par exemple, le code suivant dans le fichier projet génère MSB3644 :

    <PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == ''">
        <TargetFrameworkIdentifier>.NETCORAPP</TargetFrameworkIdentifier>
        <TargetFrameworkVersion>3.1</TargetFrameworkVersion>
    </PropertyGroup>

Le problème est que TargetFrameworkIdentifier est mal orthographié. .NETCOREAPP devrait être écrit, et non .NETCORAPP (notez le « e » manquant).

Lorsque vous tirez parti de la propriété TargetFrameworks et utilisez plusieurs frameworks cibles, assurez-vous qu’ils sont séparés par le délimiteur approprié ;. MSB3644 se produit, par exemple, lors de la tentative de séparation des frameworks à l’aide du délimiteur ,. Voici un exemple de syntaxe correcte :

    <PropertyGroup>
            <TargetFrameworks>net6.0;net5.0;netcoreapp3.1</TargetFrameworks>
    </PropertyGroup>

Dossier d’assemblys de référence

Notez ensuite l’identificateur et la version de l’infrastructure demandés dans TargetFramework, TargetFrameworkIdentifier et TargetFrameworkVersion, et recherchez le dossier d’assembly de référence pour cette version sur le lecteur local. Par exemple, sur Windows, les assemblys de référence 32 bits pour .NET Core doivent se trouver sous C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore et les assemblys de référence .NET Framework 64 bits sous C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework. Si le dossier de la version dont votre projet a besoin n’est pas présent ou semble endommagé, vous devrez peut-être installer ou réinstaller cette version. Vous pouvez installer la version requise sur Télécharger .NET.

Voir aussi