NuGet 包中的.dot 前缀目录?

.dot-prefixed directories in NuGet packages?

目前我有一堆文件存在于 TFS 下的目录中。本质上,我想在我的构建服务器中用它制作一个 NuGet 包。

不过,我确实想将文件结构移动到一个子目录中,然后从那里重新定位。让我解释一下:

观察到的TFS路径是:$/Foo/Bar/

$/Foo/Bar/
│
│   Bar.nuspec
│
└───PackageContent/
    │   GenPumpGraphCtrl.dll
    │   MultiPumpCurve.dll
    │   PumpGraphCtrl2.dll
    │
    ├───Dwg/
    │       Logofnt1.wmf
    │       LOGOFNT1a.wmf
    │       LOGOFNT1b.wmf
    │
    ├───Ref/
    │       AqSolutions.xbn
    │       Astring.bin
    │       WordTranslation.xbn
    │
    └───Temp/
        │   
        └───Notes/
                Notes.txt

我的 .nuspec 使用:

  <files>
    <file src="PackageContent\**"/>
  </files>

但是,我想将 PackageContent 目录重命名为 .package-content 并更新我的 .nuspec:

  <files>
    <file src=".package-content\**"/>
  </files>

但是通过 TeamCity 中的 NuGet Pack 步骤抱怨以下错误:

>> Cannot create a package that has no dependencies nor content.
  1. .dot-prefixed 目录是否在某种程度上对 TFS 隐藏了?
  2. .dot-prefixed 目录是否会被 .nuspec 中的某些模糊规则自动忽略?

对该问题的进一步调查表明,事实上,如果我放置任何 .dot-prefixed 目录,它就会完全从我的 NuGet 包中排除,尽管使用了通配符。

问题现在更清楚了:我怎样才能确保我真的包含了所有内容?包括 .dot-prefixed 个目录?

好吧,事实上 nuget pack 有一个晦涩难懂的 -NoDefaultExcludes 参数。

在我的例子中,我必须将它添加到 TeamCity NuGet Pack 步骤的命令行参数框中: