8

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

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

有没有办法指定它,它会根据我的构建配置使用适当的源目录:即:

  • bin\Debug 如果我使用 -Prop Configuration=Debug 打包
  • bin\Release 如果我使用 -Prop Configuration=Release 打包
4

1 回答 1

10

TL;博士

使用$configuration$令牌。

完整说明

在 .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 的程序集,包中 .nuspec 文件中的结果行如下:

<files>
    <file src="bin\Release\LoggingLibrary.pdb" target="lib\net40" />
</files>
于 2017-09-14T20:14:43.607 回答