Azure devops Visual Studio团队服务-未找到发布项目PathtoPublish

Azure devops Visual Studio团队服务-未找到发布项目PathtoPublish,azure-devops,ms-release-management,azure-pipelines,azure-pipelines-build-task,Azure Devops,Ms Release Management,Azure Pipelines,Azure Pipelines Build Task,我在TeamServices中有一个构建定义设置,它将web.config文件作为附加工件发布,以便我可以在其上运行标记器任务。在我的visual studio项目中,我在Web.Release.config文件中设置了令牌。运行构建时,令牌被插入到配置文件中,然后由每个环境的发布管理过程替换 这在过去几个月一直有效。但今天它开始失败,web.config文件出现错误“not found PathTopPublish”。在发布工件任务中,我有将安装程序发布为的路径 "MyWebProject\o

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

这在过去几个月一直有效。但今天它开始失败,web.config文件出现错误“not found PathTopPublish”。在发布工件任务中,我有将安装程序发布为的路径

"MyWebProject\obj\Release\Package\PackageTmp\Web.config". 
看起来它现在期望的路径是

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

我想我需要为路径使用一个变量。但我不知道什么是正确的变量。我需要提取转换后的Web.config文件,以便令牌就位。奇怪的是,对于第二团队项目构建定义来说,旧方法运行良好

您可能已经更新了生成定义,并且任务已更新到最新版本,而您没有注意到(请查看任务历史记录中的版本号)。
我不知道您在寻找哪个变量,但是$(BuildConfiguration)将为您提供路径的“Release”或“Debug”部分。
$(build.stagingDirectory)将为您提供文件在作为工件收集之前复制的路径。
那么minimatch模式也可能是一个类似**\Web.Config的选项

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

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

  • 使用“复制和发布生成工件”任务,指定
    $(Build.SourcesDirectory)
    作为“复制根目录”,指定
    ***\PackageTmp\Web.config
    作为“内容”。这将搜索
    PackageTmp
    文件夹下的
    web.config
    文件并将其发布

  • 或者您可以在“Visual Studio build”步骤中添加
    /p:outputpath=“$(build.artifactstagindirectory)\Temp”
    参数,将输出文件复制到
    $(build.artifactstagindirectory)\Temp
    文件夹中,然后在“发布工件任务”步骤中,您可以输入
    $(build.artifactstagindirectory)\Temp\\u PublishedWebsites\YourProjectName\Web.config
    发布
    Web.config
    文件


  • 是的,我确实更新了映射。选项1对我有效,