15

我在 TeamCity 工件配置中使用通配符语法进行了一场小闹剧。我想从任何文件夹中获取与模式 myproject.*.dll 匹配的每个文件,并将每个 DLL 放在工件路径的根目录中。

这是我目前所拥有的:

**/obj/Debug/myproject.*.dll => /

这是抓取所有 DLL,但将它们放在与源相同的文件夹结构中,而不是在工件中以“myproject.web.dll”结束,我得到“Web/obj/debug/myproject.web.dll”。

我在这里想念什么?

4

2 回答 2

16

恐怕你不能以简单的方式做到这一点。您应该在本地将 *.dll 收集到一个地方,然后使用 TeamCity 的工件规则将它们全部复制到根目录。

或者,您可以手动输入所有路径(不带 ** 部分)

这就是它在 TC 中的工作方式。

于 2011-03-05T07:06:21.367 回答
4

我不确定您是否可以在不复制结构的情况下使用工件根目录。文档指定

如果省略目标目录,则文件将发布在构建工件的根目录中。

你不能只使用指定的文件夹名称说 dist,这会导致问题吗?如果有,它们是什么!

例如

**/obj/Debug/myproject.*.dll => dist

更新 - 在文档中找到更多信息

文件将被发布,保留通配符匹配的目录结构(不会创建与“静态”文本匹配的目录)。也就是说,TeamCity 将从模式中第一次出现通配符开始创建目录。

因此,如果你可以更明确,它可能会导致更扁平的结构。

于 2011-03-04T23:32:23.850 回答