【问题标题】:VSTS Copy and Publish Build Artifacts copying the whole project instead of the necessary filesVSTS Copy and Publish Build Artifacts 复制整个项目而不是必要的文件
【发布时间】:2018-08-22 23:16:51
【问题描述】:

我正在尝试将我的构建复制到特定的放置位置。但不是复制一些重要的文件和目录,而是复制那里的所有解决方案文件和目录,如 .csproj 文件和 .csfiles 以及那里存在的所有文件夹。 我只想复制 dll(项目 dll 和项​​目的引用 dll)和一些数据文件夹和文件到放置位置,以便我可以使用它们来执行我的测试用例。但它最终复制了整个解决方案。

以下是我用来复制和发布构建工件的设置。

谁能告诉我怎么做?

注意:当我尝试将 $(build.sourcesdirectory)\bin 放入复制根目录时,它给了我一个错误“无法将参数绑定到参数 'Path' 因为它为空”。

我也尝试只将 **.dll 放入我的内容中,但它没有复制任何内容。在放置位置创建的文件夹为空。

【问题讨论】:

  • 尝试使用**\$(BuildConfiguration)\*test*.dll !**\obj\**作为内容模式。
  • 我确实试过了,但它在放置位置给了我一个空文件夹。

标签: visual-studio tfs azure-devops azure-pipelines azure-pipelines-build-task


【解决方案1】:

您告诉它从构建代理的根目录发布**/*test*.dll。该 minmatch 模式表示“在每个子文件夹中查找与 test.dll 匹配的所有内容”,因此您得到的结果并不令人惊讶。

您可能想要做的是指定测试项目的二进制输出位置的路径。如果没有看到您的代码结构或您提供/覆盖的 MSBuild 变量,就不可能提供更多指导。看看documentation on pre-defined variables,应该会给你一些想法。

一般情况下,您希望将输出文件夹(通过 MSBuild 参数)设置为 $(Build.ArtifactStagingDirectory),因此只有构建输出到那里。然后您可以将其用作您的复制根目录。

【讨论】:

  • 如何将我的输出文件夹(通过 MSBuild 参数)设置为 $(Build.ArtifactStagingDirectory)?我必须在 MSBuild 参数中输入 $(Build.ArtifactStagingDirectory) 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多