如何防止NuGet包中的HTML文档文件被复制到内容文件夹

时间:2016-01-25 15:51:48

标签: visual-studio-2013 nuget nuget-package

我正在使用在线" NuGet Packager"构建NuGet包。 Visual Studio 2013中的模板。我的项目中有以下文件结构:

content/
docs/
  |
  +- Install.md
  |
  +- Install.html
lib/
src/
tools/

作为参考,我安装了Visual Studio的Web Essentials扩展,并且在保存时将docs/Install.md文件从Markdown编译为HTML。

使用包含文件的默认Package.nuspec设置,docs目录将被复制到.nupkg文件的content目录。

Package.nuspec的<files>部分:

<files>
  <file src="lib\" target="lib" />
  <file src="tools\" target="tools" />
  <file src="docs\*" target="lib\docs" exclude="docs\**\*.md" />
  <file src="content\" target="content" />
</files>

.nupkg文件的结果文件结构:

content/
    docs/
        Install.html <-- This is NOT correct
lib/
    docs/
        Install.html <-- This is correct
package/
tools/

我的<files>规范的一些其他变体不起作用:

<file src="content\" target="content" exclude="docs" />
<file src="content\" target="content" exclude="docs\*" />
<file src="content\" target="content" exclude="docs\**\*" />
<file src="content\" target="content" exclude="content\docs" />
<file src="content\" target="content" exclude="content\docs\" />
<file src="content\" target="content" exclude="content\docs\*" />
<file src="content\" target="content" exclude="content\docs\**\*" />

如果我将docs文件夹排除在我的Visual Studio项目中,则此文件夹不再显示在生成的content文件夹中,并且会像我想要的那样复制到lib文件夹,但这样做方便了保存.md文件并让Web Essentials在保存时将其转换为HTML的工作流程。

为什么我的lib/docs文件夹被复制到.nupkg文件中的content文件夹?

1 个答案:

答案 0 :(得分:1)

我这样做时讨厌它。发布问题15秒后,我发现了答案。

似乎正在发生两件事:

  1. 默认情况下,HTML文件在“内容”的Visual Studio中被赋予“构建操作”

  2. NuGet选择了这个,并将任何带有此Build Action的文件 - 在项目的任何目录中 - 扔到.nupkg文件的<input type="number" size="3" max=1 min=5> 文件夹中。

  3. 修复:

    1. 右键单击HTML文件
    2. 在“属性”窗格中,为“构建操作”
    3. 选择“无”
    4. 清理并构建项目