MSB3644: 'FrameworkVersion' の参照アセンブリが見つかりませんでした
このエラーは、プロジェクトで要求された .NET のバージョンの .NET 参照アセンブリが見つからなかった場合に発生します。 プロジェクトに Microsoft.NETFramework.ReferenceAssemblies NuGet パッケージへの参照があることを確認します。 「.NET Framework ターゲット パック Nuget パッケージ」を参照してください。 または、要求されているバージョンが認識されないか、インストールされていないという点で、プロジェクト ファイルに問題がある可能性があります。 または、その .NET バージョンの参照アセンブリ フォルダーが存在しないか、破損しているというインストールの問題がある可能性があります。
プロジェクト ファイルのフレームワークの ID とバージョン
プロジェクト ファイル内の TargetFramework
、TargetFrameworks
、TargetFrameworkIdentifier
、または TargetFrameworkVersion
プロパティにスペル ミスや誤字がないことを確認します。 たとえば、プロジェクト ファイル内の次のコードでは、MSB3644
が生成されます。
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == ''">
<TargetFrameworkIdentifier>.NETCORAPP</TargetFrameworkIdentifier>
<TargetFrameworkVersion>3.1</TargetFrameworkVersion>
</PropertyGroup>
問題は、TargetFrameworkIdentifier
が誤って入力されていることです。 .NETCORAPP
ではなく ("e" がありません)、.NETCOREAPP
を指定する必要があります。
TargetFrameworks
プロパティと複数のターゲット フレームワークを利用する場合は、正しい区切り記号 ;
で区切られていることを確かめます。 たとえば、,
の区切り記号を使用してフレームワークを区切ろうとすると MSB3644
が発生します。 正しい構文の例を以下に示します。
<PropertyGroup>
<TargetFrameworks>net6.0;net5.0;netcoreapp3.1</TargetFrameworks>
</PropertyGroup>
参照アセンブリ フォルダー
次に、TargetFramework
、TargetFrameworkIdentifier
、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 下にあります。 プロジェクトで必要なバージョンのフォルダーが存在しないか、破損しているように思われる場合は、そのバージョンのインストールまたは再インストールが必要になる可能性があります。 必要なバージョンは、Download .NET でインストールできます。