Nuspec - 如果添加 "files" 节点,为什么 "contentFiles" 会被忽略?怎么修?

Nuspec - Why is "contentFiles" ignored if you add "files" node? How to fix?

我有一个包含 UWP 以及 Android 和 iOS 程序集的包的 nuspec 文件。

在UWP 版本中我还需要包含一个内容文件。 根据 this reference,我应该使用 contentFiles 标签,它在以下代码中工作正常,在生成的包文件中我添加了文件:

<?xml version="1.0"?>
<package>
  <metadata minClientVersion="3.3.0">
    <id>x</id>
    <version>1.0.1</version>
    <authors>...</authors>
    <description>...</description>       
   <contentFiles>        
        <files include="**/images/*.*" ... />        
    </contentFiles>
  </metadata>
</package>

但是,我还需要包含程序集,为此我必须使用 files 节点:

<?xml version="1.0"?>
<package>
  <metadata minClientVersion="3.3.0">
    ...
  </metadata>  
  <files>
    <file src="..." target="..." />    
  </files>  
</package>

在这种情况下,内容文件将被忽略。换句话说,一旦我添加 files 节点,contentFiles 节点甚至都没有添加到生成的包中!

这是 Nuget.exe 中的错误吗?这是设计使然吗?我怎样才能将两者都包含在包裹中?!

PS: 我的nuget.exe是官方最新的

NuGet 有一个相关的 github 问题。 https://github.com/NuGet/Home/issues/1980

当您将 files 部分添加到您的 nuspec 文件中时,您需要手动列出您的包中需要的所有文件,包括您在 [=11= 中列出的内容文件] 部分。

根据文档,在 Including content files 下,您应该使用其中之一,因为 ContentFiles 用于 project.json

尝试将您的内容移动到您的文件标签,它应该如下所示:

<?xml version="1.0"?>
<package>
    <metadata minClientVersion="3.3.0">
        ...
    </metadata>  
    <files>
        <file include="**/images/*.*" target="Content" />
        <file src="..." target="..." />    
    </files>  
</package>