簡體   English   中英

如何解決在新導入的 Xamarin Forms Nuget 包上導入的多個程序集

[英]How to resolve Multiple assemblies being imported on a newly imported Nuget package for Xamarin Forms

免責聲明,我正在創建有問題的 Nuget。

我目前正在為 Xamarin Forms 創建 Nuget 包,它一直很順利。 這是回購 我已經讓它完全正常工作沒有問題。

我也一直在測試它,將它作為項目參考包含在另一個封閉源代碼倉庫中。 這也一直工作得很好。

但是,我決定從使用項目引用切換到使用實際的 Nuget,因為我不再即時修補代碼以使其正常工作,而且我遇到了障礙。

在我包含包的那一刻,我得到了超過 5000 個錯誤,它們要么是

(/Users/UserHere/Projects/PopupsError/PopupsError.Android/CSC: Error CS1703: Multiple assemblies with equivalent identity have been imported: /Users/UserHere/.nuget/packages/awaitablepopups/0.2.5/lib/netstandard2.0/System.Xml.XmlSerializer.dll' and /Library/Frameworks/Mono.framework/External/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Xml.XmlSerializer.dll. Remove one of the duplicate references. (CS1703) (PopupsError.Android))

或者

(/Users/UserHere/Projects/PopupsError/PopupsError.Android/Resources/Resource.designer.cs(36,36): Error CS0731: The type forwarder for type 'System.Attribute' in assembly 'netstandard' causes a cycle (CS0731) (PopupsError.Android))

還有很多其他人,我有一個全新的 repo,這里只添加了 Nuget

對我來說最令人困惑的一點是,相同的項目作為項目參考工作,但如果我將其設為 Nuget 並將其添加進來,則會引發上述錯誤。

我的印象是,我可以添加一些小選項,但經過一些研究,我無法弄清楚我應該勾選哪個小選項。 任何幫助將不勝感激

這有時令人頭疼。

對於從 packages.config 遷移到 PackageReference 的本地項目

您必須從物理磁盤中刪除重復的 nuget。

刪除此文件夾 /Users/UserHere/.nuget/packages/awaitablepopups/0.2.5/lib/netstandard2.0

由於您提到您在csproj文件中從packages.config移動到PackageReference ,您還必須注意 csproj 仍然沒有舊樣式導入,您可以通過將您的csproj文件與新創建的項目csproj文件作為參考進行比較來解決此問題。

從 csproj 文件中刪除並刪除"package.config"和“app.config”引用。

更新

對於 NuGet

  • 檢查 .nuspec 文件並刪除冗余導入
  • 清理項目,手動刪除 bin obj 文件夾。
  • 刪除NuGet.Build.Packaging ,它不是必需的。 它添加了所有這些冗余程序集。

暫無
暫無

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

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