[英]An item with the same key has already been added MAUI C#
當我嘗試在發布模式下運行我的程序時,它給出了這個錯誤:
Severity Code Description Project File Line Suppression State
Error XAGJS7004 System.ArgumentException: An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at Xamarin.Android.Tasks.TypeMapGenerator.GenerateRelease(Boolean skipJniAddNativeMethodRegistrationAttributeScan, List`1 javaTypes, String outputDirectory, ApplicationConfigTaskState appConfState)
at Xamarin.Android.Tasks.GenerateJavaStubs.WriteTypeMappings(List`1 types, TypeDefinitionCache cache)
at Xamarin.Android.Tasks.GenerateJavaStubs.Run(DirectoryAssemblyResolver res)
at Xamarin.Android.Tasks.GenerateJavaStubs.RunTask()
at Microsoft.Android.Build.Tasks.AndroidTask.Execute() in /Users/runner/work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:line 17 MauiApp1 C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\32.0.440\tools\Xamarin.Android.Common.targets 1438
這很奇怪,因為在調試模式下它工作正常而且我在網上找不到任何答案。 Window 片段
MAUI 和 .NET7 之間肯定存在一些不兼容性,但是您可以按照以下幾個步驟將您的項目設置為使用以前的 .NET6 版本:
發現已安裝的 SDK 並記下確切的版本 6
do.net --info
SDK 列表
移動到項目文件夾並創建一個 global.json 文件,它設置要使用的 .NET SDK。 一定要設置安裝的SDK版本:
do.net new globaljson --sdk-version 6.0.301 --roll-forward disable
恢復項目所需的工作負載:
do.net workload restore
在 Visual Studio 中打開項目,確認是否需要重新加載項目。
現在您的項目將使用 .NET6 SDK 構建。
有同樣的問題,正在調試,發布時出現此異常。 我通過以下方式解決了它:清理毛伊島解決方案 -> 刪除 bin 和 obj -> 關閉 Visual Studio -> 重建 -> 工作
如果您沒有嘗試,希望這會有所幫助
我通過卸載 .net7 解決了這個問題,我在 Maui 的 github 頁面上發現了同樣問題的人,我認為將來會修復它。
令人遺憾的是,毛伊島還沒有為 .net7 做好准備
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.