次の方法で共有


NETSDK1005 および NETSDK1047:アセット ファイルにターゲットがありません

この記事の対象: ✔️ .NET Core 2.1.100 SDK 以降のバージョン

.NET SDK でエラー NETSDK1005 または NETSDK1047 が発生した場合、プロジェクトのアセット ファイルには、ターゲット フレームワークのいずれかに関する情報が存在しません。 NuGet によって、project.assets.json という名前のファイルが obj フォルダーに書き込まれます。これはコンパイラに渡すパッケージに関する情報を取得するために .NET SDK によって使用されます。 .NET 5 では、NuGet で TargetFrameworkAlias という名前の新しいフィールドが追加されたため、以前のバージョンの MSBuild または NuGet では、新しいフィールドのないアセット ファイルが生成されます。 詳細については、エラー NETSDK1005 に関するページを参照してください。

このエラーを解決するために実行できるアクションをいくつか次に示します。

  • MSBuild バージョン 16.8 以降および NuGet バージョン 5.8 以降を使用していることを確認し、ツールを更新した後でプロジェクトを復元 (dotnet restore を実行) します。 NuGet バージョン 5.8 以降を使用している場合は、Visual Studio 2019 バージョン 16.8 以降、MSBuild バージョン 16.8 以降、.NET 5 SDK 以降を使用する必要があります。

  • バージョン 16.8 をインストールした後、またはプロジェクトのターゲット フレームワークを変更した後に、Visual Studio 2019 でプロジェクトを初めてビルドするときにエラーが発生した場合は、プロジェクトをもう一度ビルドします。

  • プロジェクトをビルドする前に、obj フォルダーを削除します。

  • 見つからないターゲット値がプロジェクトの TargetFrameworks プロパティに含まれていることを確認します。

  • Docker イメージを構築している場合は、 .dockerignore ファイルで bin および obj ディレクトリが必ず無視されるようにしてください。 詳細については、GitHub pull request dotnet/docs #29530 を参照してください。

  • Android シミュレーターで Maui アプリを実行する場合は、Android SDK とツールを開き、不足しているプラットフォームを [プラットフォーム] タブと [ツール] タブの両方に追加します。