构建Xamarin时出现Nuget包错误NU5050,表格

0yg35tkg  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(130)

我试图从源代码构建Xamarin.Forms来调试另一个问题。XF仓库提供了一个构建脚本,它一直工作到将构建打包到Nuget包中。最后一个阶段_NugetPack失败,并显示以下错误:
尝试从"Xamarin.Forms. temp. nuspec"生成包。错误NU5050:试图将多个文件打包到同一位置。以下目标已使用多次:Xamarin.com.xml文件中的Xamarin.com.xml文件,该文件包含Xamarin.com.xml文件中的Xamarin.com.xml文件和Xamarin.com.xml文件中的Xamarin.com.xml文件,以及Xamarin.com.xml文件中的Xamarin.com.xml文件。
直接调用Nuget时(不使用生成脚本):
nuget包.. nuspec\Xamarin. Forms. nuspec-版本9.9.9-属性配置=调试
同样的错误被抛出。因此,我怀疑这不是Xamarin.froms构建脚本的问题,而是我的nuget的问题。
Nuget版本:5.0.0 + 0-轴向位置

    • Edit我想我找到了问题所在。在Tizen的例子中,只有两行相同的行,因此有重复的输出。其他的都是使用进行全局绑定。而只有一个目录,因此再次得到重复的输出。现在将这些注解出来就可以了。
6pp0gazn

6pp0gazn1#

这似乎与Nuget pack allows multiple files with the same path to be added to a package #4388下记录的未决问题有关。
有两种方法可以解决此问题:

删除重复的源文件条目

Xamarin.Forms.nuspec文件包含重复的源文件条目,例如:

<file src="..\build\docs\Xamarin.Forms.Core.xml" target="lib\netstandard2.0" />
<file src="..\build\docs\**\Xamarin.Forms.Core.xml" target="lib\netstandard2.0" />

<file src="..\build\docs\Xamarin.Forms.Xaml.xml" target="lib\netstandard2.0" />
<file src="..\build\docs\**\Xamarin.Forms.Xaml.xml" target="lib\netstandard2.0" />

带有**通配符的src属性引用与显式..\build\docs\Xamarin.Forms.Core.xml值相同的文件。
因此,要解决这个问题,要么删除通配符条目,要么删除显式条目,nuget pack将正常运行。

降级Nuget.exe

您也可以通过downloading并使用Nuget.exe的稍旧版本(如v5.8.1)来解决此问题,例如,将其目录添加到PATH环境变量中,该环境变量尚未检查重复的源文件。

相关问题