Compartir a través de


MSB3644: no se han encontrado los ensamblados de referencia para "FrameworkVersion".

Este error se produce cuando no se encuentran los ensamblados de referencia de .NET para la versión de .NET que el proyecto solicita. Compruebe que el proyecto tenga una referencia al paquete NuGet Microsoft.NETFramework.ReferenceAssemblies. Consulte Paquetes Nuget del paquete de destino de .NET Framework. Alternativamente, podría haber un problema con el archivo del proyecto, consistente en que la versión que solicita no se reconozca o no esté instalada. También podría haber un problema de instalación que implique que la carpeta de ensamblados de referencia para esa versión de .NET no esté presente o esté dañada.

Identificador y versión del marco del archivo del proyecto

Hay que comprobar que no existan errores de ortografía o tipográficos en las propiedades TargetFramework, TargetFrameworks, TargetFrameworkIdentifier o TargetFrameworkVersion del archivo del proyecto. Por ejemplo, el código siguiente del archivo del proyecto genera MSB3644:

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

El problema consiste en que TargetFrameworkIdentifier no se ha escrito correctamente. Debe ser .NETCOREAPP, no .NETCORAPP (tenga en cuenta que falta "e").

Al usar la propiedad TargetFrameworks y varias plataformas de destino, asegúrese de que estén separadas con el delimitador correcto (;). Se producirá el error MSB3644, por ejemplo, al intentar separar plataformas con el delimitador ,. Este es un ejemplo de la sintaxis correcta:

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

Carpeta de ensamblados de referencia

Fíjese en el identificador de la plataforma y la versión que se solicita en TargetFramework, TargetFrameworkIdentifier y TargetFrameworkVersion. Después, busque la carpeta de ensamblado de referencia de la versión en cuestión en la unidad local. Por ejemplo, en Windows, los ensamblados de referencia de 32 bits para .NET Core deberían encontrarse en C:\Archivos de programa (x86)\Reference Assemblies\Microsoft\Framework.NETCore, mientras que las carpetas de ensamblados de referencia de .NET Framework de 64 bits deberían encontrarse en C:\Archivos de programa\Reference Assemblies\Microsoft\Framework.NETFramework. Si la carpeta para la versión que el proyecto necesita no se encuentra o parece estar dañada, puede que deba instalar o reinstalar la versión en cuestión. Puede instalar la versión necesaria desde la página de descarga de .NET.

Consulte también