【问题标题】:Visual Studio Team Services - Publish artifact not found PathtoPublishVisual Studio Team Services - 找不到发布工件 PathtoPublish
【发布时间】:2016-06-17 11:16:57
【问题描述】:

我在 Team Services 中有一个构建定义设置,它将 web.config 文件作为附加工件发布,以便我可以在其上运行标记器任务。在我的 Visual Studio 项目中,我在 Web.Release.config 文件中设置了令牌。当构建运行时,令牌被插入到配置文件中,然后由每个环境的发布管理过程替换。

这在过去几个月一直有效。但是今天它开始失败,出现 web.config 文件的错误“未找到 PathtoPublish”。在 Publish Artifacts 任务中,我有将设置发布为的路径

"MyWebProject\obj\Release\Package\PackageTmp\Web.config". 

看起来现在它期待像这样的路径

"SolutionFolder\Branch\MyWebProject\obj\Release\Package\PackageTmp\Web.config".

我想我需要为路径使用一个变量。但我不知道什么是正确的变量。我需要获取转换后的 Web.config 文件,以便令牌到位。奇怪的是,旧路径对于第二个团队项目构建定义工作正常。

【问题讨论】:

    标签: azure-devops ms-release-management azure-pipelines azure-pipelines-build-task


    【解决方案1】:

    这可能是由于baywet 提到的构建定义更改引起的,尤其是“存储库”选项卡下的“映射”部分。

    没有任何变量直接引用web.config文件的路径。另一种方法是:

    1. 使用“复制和发布构建工件”任务,将$(Build.SourcesDirectory) 指定为“复制根”,将**\PackageTmp\Web.config 指定为“内容”。这将搜索PackageTmp 文件夹下的web.config 文件并发布它。

    2. 或者您可以在“Visual Studio Build”步骤中添加/P:outputpath="$(build.artifactstagingdirectory)\Temp"参数,将输出文件复制到$(build.artifactstagingdirectory)\Temp文件夹,然后在“发布工件任务”步骤中,您可以输入$(build.artifactstagingdirectory)\Temp\_PublishedWebsites\YourProjectName\Web.config进行发布web.config 文件。

    【讨论】:

    • 是的,我确实更新了映射。选项 1 对我有用,
    【解决方案2】:

    您可能更新了构建定义,并且任务已更新到最新版本而您没有注意到(请查看任务历史记录中的版本号)。
    我不知道您要查找哪个变量,但 $(BuildConfiguration) 会给您路径的“发布”或“调试”部分。
    $(build.stagingDirectory) 将为您提供文件在被收集为工件之前被复制的路径。
    然后 minimatch 模式也可能是 **\Web.Config
    之类的选项 祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多