如何在nuspec中指定特定配置文件夹

8
我见过的示例都是使用相对于nuspec文件位置的路径来指定要包含的文件,例如:

<file src=".\bin\Debug\SomeFile.dll" target="..." />

有没有一种方式可以指定这样一个东西,以便根据我的构建配置使用相应的源目录,即:

  • 如果我使用 -Prop Configuration=Debug 打包,则使用 bin\Debug
  • 如果我使用 -Prop Configuration=Release 打包,则使用 bin\Release
1个回答

10

TL;DR

使用 $configuration$ 令牌。

Full Explanation

在 .nuspec 文件的替换标记中,Replace Tokens下,它将 $configuration$ 令牌定义为:

"用于构建程序集的配置,默认为Debug。请注意,要使用Release配置创建包,您需要始终在命令行上使用 -properties Configuration=Release."

并继续说明:

当您包含程序集文件和内容文件时,也可以使用标记来解析路径。标记与MSBuild属性具有相同的名称,因此可以根据当前构建配置选择要包含的文件。

最后以两个示例结束:

例如,在 .nuspec 文件中使用以下标记:

<files>
    <file src="bin\$configuration$\$id$.pdb" target="lib\net40\" />
</files>

如果你在MSBuild中使用Release配置构建一个程序集,其中AssemblyName为LoggingLibrary,那么在生成的NuGet包的.nuspec文件中会得到以下行:

<files>
    <file src="bin\Release\LoggingLibrary.pdb" target="lib\net40" />
</files>

非常好,谢谢。虽然你提供的版本非常新(2017-7-25),但我不确定为什么在文档中错过了那个部分。 - Joe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接