При создании моего проекта Мауи с кодом, специфичным для платформы, я получаю ошибки:
Microsoft.Android.Sdk.RuntimeConfig.targets(61, 5): [MSB4062] The "RuntimeConfigParserTask" task could not be loaded from the assembly <path>. Could not load file or assembly 'System.Text.Json, Version=7.0.0.3, Culture=neutral, PublicKeyToken=<value>' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.
И
RuntimeComponentManifest.targets(14, 5): [MSB4175] The task factory "JsonToItemsTaskFactory.JsonToItemsTaskFactory" could not be loaded from the assembly <path>. Could not load file or assembly 'System.Text.Json, Version=7.0.0.3, Culture=neutral, PublicKeyToken=<value>' or one of its dependencies. The system cannot find the file specified.
Я использую .net 8, и мои цели сборки проекта: net8.0-android;net8.0-ios. Похоже, мой проект хочет получить доступ к пакету Microsoft (System.Text.Json), предназначенному для .net 7. Однако я никогда не указывал этот пакет, и когда я сделал это с вариантом .net 8, система все равно выдавала эти ошибки. Я пытался найти это, но не смог найти ничего связанного. Кто-нибудь знает, как я могу устранить эти ошибки?
Также я использую Rider в качестве IDE. Я проверил, что рабочие нагрузки установлены, а также что версия msbuild является последней (17.0).
В ванильном проекте у меня нет этой проблемы, поэтому я, вероятно, что-то неправильно настроил. При создании ванильного приложения я также не получаю никаких предупреждений, а в своем проекте я получаю много предупреждений о том, что «Предупреждение NETSDK1213: ориентация на .NET 8.0 или выше в Visual Studio 2022 17.7 не поддерживается». Я проверил все свои проекты, но все они имеют TargetFrameworks.net 8. Я постараюсь создать минимальный проект, демонстрирующий проблему.





Оказывается, источником установки рабочих нагрузок должен быть SDK, а не VS. Вы можете проверить это, выполнив команду dotnet workload list. Если источник установки maui, maui-android и maui-ios взят из vs, то это не работает. Я установил SDK, выполнив команду dotnet workload install maui, и SDK были скачаны. У меня теперь также есть второй источник установки от VS, но это, похоже, не имеет значения.
Сможете ли вы воспроизвести это с помощью полностью «ванильного» проекта? Если нет, разработали ли вы минимальный проект, демонстрирующий проблему? Есть ли у вас какие-либо другие зависимости?