NETSDK1005 и NETSDK1047: файл ресурса отсутствует целевой объект
Эта статья относится к: ✔️ пакету SDK для .NET Core 2.1.100 и более поздних версий
Когда пакет SDK для .NET выдает ошибку NETSDK1005 или NETSDK1047, это означает, что в файле ресурсов проекта отсутствуют сведения об одной из целевых платформ. NuGet записывает файл с именем project.assets.json в папку obj, а пакет SDK для .NET использует его для получения сведений о пакетах для передачи в компилятор. В .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 или более поздней, а также пакет SDK для .NET 5 или более поздней версии.Если при сборке проекта в Visual Studio 2019 ошибка возникает впервые после установки версии 16.8 или после изменения целевой платформы проекта, выполните сборку еще раз.
Перед сборкой проекта удалите папку obj.
Убедитесь, что отсутствующее целевое значение включено в свойство
TargetFrameworks
проекта.Если вы создаете образ Docker, убедитесь, что файл .dockerignore не учитывает каталоги bin и obj. Дополнительные сведения см. в статье GitHub pull request dotnet/docs #29530.
Если вы пытаетесь запустить приложение Maui на симуляторе Android, откройте пакеты SDK и инструменты Android и добавьте отсутствующие платформы как на платформах, так и на вкладке "Сервис".