Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何解析在新导入的Xamarin表单Nuget包上导入的多个程序集_C#_Android_Xamarin_Xamarin.forms_Nuget - Fatal编程技术网

C# 如何解析在新导入的Xamarin表单Nuget包上导入的多个程序集

C# 如何解析在新导入的Xamarin表单Nuget包上导入的多个程序集,c#,android,xamarin,xamarin.forms,nuget,C#,Android,Xamarin,Xamarin.forms,Nuget,免责声明,我正在创建有问题的Nuget 我目前正在为Xamarin Forms创建一个Nuget包,这个包非常棒。我已经让它完全工作没有问题 我也一直在测试它,把它作为另一个封闭源码的repo中的项目参考。这也一直运作良好 然而,我决定从使用项目引用切换到使用实际的Nuget,因为我不再动态地修补代码以使其正确工作,而且我遇到了麻烦 在我包含包的那一刻,我收到了超过5000个错误,它们是 (/Users/UserHere/Projects/PopupsError/PopupsError.Andr

免责声明,我正在创建有问题的Nuget

我目前正在为Xamarin Forms创建一个Nuget包,这个包非常棒。我已经让它完全工作没有问题

我也一直在测试它,把它作为另一个封闭源码的repo中的项目参考。这也一直运作良好

然而,我决定从使用项目引用切换到使用实际的Nuget,因为我不再动态地修补代码以使其正确工作,而且我遇到了麻烦

在我包含包的那一刻,我收到了超过5000个错误,它们是

(/Users/UserHere/Projects/PopupsError/PopupsError.Android/CSC:Error CS1703:已导入具有等效标识的多个程序集:/Users/UserHere/.nuget/packages/awaitablepopups/0.2.5/lib/netstandard2.0/System.Xml.XmlSerializer.dll'和/Library/Frameworks/Mono.framework/External/xbuild-Frameworks/monoard/v1.0/Facades/System.Xml.Xml)lSerializer.dll。删除其中一个重复引用。(CS1703)(PopupsError.Android))

(/Users/UserHere/Projects/PopupsError/PopupsError.Android/Resources/Resource.designer.cs(36,36):错误CS0731:程序集“netstandard”中类型“System.Attribute”的类型转发器导致循环(CS0731)(PopupsError.Android))

还有很多其他人,我有一个全新的回购协议,只添加了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”引用

更新 为了努吉
  • 检查.nuspec文件并删除reduntant导入
  • 清理项目,手动删除bin obj文件夹
  • 删除
    NuGet.Build.Packaging
    ,它不是必需的。它将添加所有这些冗余程序集

我想我误解了这个问题。您是如何生成nuget的,只是使用visual studio右键单击并打包,还是使用带有显式文件的命令行来包含程序集?我尝试过在visual studio for Mac中使用Just pack,以及使用“`dotnet pack--configuration Release``您应该在此处共享nuspec文件。另外您可以使用0.2.5版本的VS代码扩展名eridem.vscode-nupkgNuspec在from nupkg文件中检查包含的程序集。但是,我使用.NetStandard 2.1重建了该程序集,并获得了此Xamarin forms async popups MVVM Ok。我将在我的Windows计算机、主分支或开发人员上试用它?虽然这在一开始是可行的,但似乎并没有解决根错误,好像我完全删除了包并从Nuget.org重新下载。它仍然包含该文件夹。首先,我如何从我的Nuget中删除该文件夹。(我重命名为zip,然后解压缩,在lib中,我可以看到netstandard2.0)另外,Visual Studio for Mac似乎在其Nuget模板中添加了Nuget.Build.Packaging。否则,删除此项将修复所有问题