Nuspec - 为什么" contentFiles"如果添加"文件"则忽略节点?怎么修?

时间:2017-04-21 10:42:17

标签: c# uwp nuget nuget-package nuspec

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

在UWP版本中,我还需要包含一个内容文件。 根据{{​​3}},我应该使用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>

但是,我还需要包含程序集,我必须使用文件节点:

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

在这种情况下,只会忽略内容文件。换句话说,只要我添加文件节点,就不会将contentFiles节点添加到生成的包中!

这是Nuget.exe中的错误吗?这是设计的吗?我如何在包中同时拥有这两个?!

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

根据文档,在包含内容文件下,您应该使用其中一个,因为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>