NuGet.exe包不包括空文件夹

时间:2016-03-09 17:19:13

标签: nuget

我为我的解决方案创建了一个nuspec文件。解决方案有几个空文件夹。

我已从https://docs.nuget.org/consume/command-line-reference

下载了最新的nuget.exe

但是,当我运行我的nuget pack命令时,不包含空文件夹。查看pack命令的文档,我正在解释默认包含空文件夹的事实,因为这个标志:

ExcludeEmptyDirectories:在构建程序包时防止包含空目录。

不幸的是,我无法获得pack命令来包含我的空文件夹。

我的文件结构类似于 根

  • Folder1
  • FOLDER2
  • Folder3

Folder1和Folder2中包含内容文件,但Folder3为空

我的nuspec文件定义如下:

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>Package_7.2_140526</id>
    <version>7.2.140526</version>
    <title>Package 7.2 rev 140526</title>
    <authors>My Company</authors>
    <owners>My Company</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>A vanilla website</description>
  </metadata>
</package>

我没有包含单个文件,因为我希望nuget包包含所有内容。虽然我的例子只有3个文件夹,但显然不止于此。

这是我从命令行运行的nuget命令

nuget pack "c:\Projects\Package 7.2 rev 140526\Packagee 7.2 140526.nuspec" -OutputDirectory c:\Projects -NoPackageAnalysis 

当这不起作用时我尝试使用-ExcludeEmptyDirectories标志只是加入

nuget pack "c:\Projects\Package 7.2 rev 140526\Packagee 7.2 140526.nuspec" -OutputDirectory c:\Projects -NoPackageAnalysis -ExcludeEmptyDirectories

但它仍然不会包含空文件夹。

要使nuget pack命令包含空文件夹需要做些什么?

更新

我使用Nuget Package Explorer将空文件夹添加到解决方案中,然后查看修改后的nuspec文件。看来,在nuget中包含空文件夹的唯一方法是将文件条目设为

<file src="folder3\_._" target="folder3\_._" />

然后使用postdeploy.ps1文件删除名为“_._”的所有文件

所以似乎总是必须指定文件。

聚苯乙烯。我用以下结构测试了它 \ Folder3 \ Folder4。

如果folder4为空,则除非包含“_._”文件,否则不会创建folder3和folder4

但是如果有一种方法可以包含空文件夹而不必诉诸_._文件然后想知道,特别是如果空白文件夹是嵌套的,因为它很容易被排除

1 个答案:

答案 0 :(得分:0)

是的,这似乎是一个问题,它是否已经解决,以及如何解决。 Nuget Github中有一些关于此的问题,但我不能清楚地了解状态是什么。

总结是nuget&#39; pack&#39;有一个参数。这个名为-ExcludeEmptyDirectories的命令实际上应该与它所调用的方法相反,但它不能正常工作。

https://github.com/NuGet/Home/issues/3009

相关问题