簡體   English   中英

已添加具有相同密鑰的項目 MAUI C#

[英]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 版本:

  1. 發現已安裝的 SDK 並記下確切的版本 6

    do.net --info SDK 列表

  2. 移動到項目文件夾並創建一個 global.json 文件,它設置要使用的 .NET SDK。 一定要設置安裝的SDK版本:

    do.net new globaljson --sdk-version 6.0.301 --roll-forward disable

  3. 恢復項目所需的工作負載:

    do.net workload restore

  4. 在 Visual Studio 中打開項目,確認是否需要重新加載項目。

現在您的項目將使用 .NET6 SDK 構建。

有同樣的問題,正在調試,發布時出現此異常。 我通過以下方式解決了它:清理毛伊島解決方案 -> 刪除 bin 和 obj -> 關閉 Visual Studio -> 重建 -> 工作

如果您沒有嘗試,希望這會有所幫助

我通過卸載 .net7 解決了這個問題,我在 Maui 的 github 頁面上發現了同樣問題的人,我認為將來會修復它。

令人遺憾的是,毛伊島還沒有為 .net7 做好准備

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM