次の方法で共有


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 バージョンの参照アセンブリ フォルダーが破損しているか、存在しない場合にも発生します。

解決策

プロジェクトで Microsoft.NETFramework.ReferenceAssemblies NuGet パッケージが参照されていることを確認します。 詳細については、「 .NET Framework ターゲット パック NuGet パッケージ」を参照してください。

プロジェクト ファイル フレームワークの識別子とバージョン

プロジェクト ファイルで、 TargetFrameworkTargetFrameworksTargetFrameworkIdentifier、または TargetFrameworkVersion プロパティでスペル ミスや文字体裁エラーがないか確認します。

たとえば、プロジェクト ファイル内の次のコードにより、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>

参照アセンブリ フォルダー

TargetFrameworkTargetFrameworkIdentifier、およびTargetFrameworkVersionプロパティで要求されたフレームワーク識別子とバージョンをメモし、ローカル ドライブでそのバージョンの参照アセンブリ フォルダーを探します。

Windows では、.NET Core の 32 ビット参照アセンブリは C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\ に配置する必要があります。NETCore フォルダー。 64 ビットの場合、.NET Framework 参照アセンブリ フォルダーは C:\Program Files\Reference Assemblies\Microsoft\Framework\ に配置する必要があります。NETFramework パス。

プロジェクトに必要なバージョンのフォルダーが存在しないか、破損しているように見える場合は、アセンブリ バージョンのインストールまたは再インストールが必要な場合があります。 必要なバージョンは、 .NET のダウンロードでインストールできます。 詳細については、「参照アセンブリ」を参照してください。

対象

MSBuild のすべてのバージョン