我在Team Services中有一个构建定义设置,它将web.config文件作为附加工件发布,以便我可以在其上运行tokenizer任务。在我的visual studio项目中,我在Web.Release.config文件中设置了令牌。运行构建时,将令牌插入到配置文件中,然后由每个环境的发布管理过程替换。
过去几个月一直在努力。但今天它开始失败了错误"找不到PathtoPublish"对于web.config文件。在Publish Artifacts任务中,我有将发布设置发布为
的路径"MyWebProject\obj\Release\Package\PackageTmp\Web.config".
现在看起来像是期待像
这样的路径"SolutionFolder\Branch\MyWebProject\obj\Release\Package\PackageTmp\Web.config".
我想我需要在路径中使用变量。但我无法弄清楚什么是正确的变量。我需要获取转换后的Web.config文件,以便令牌到位。奇怪的是,旧路径适用于第二团队项目构建定义。
答案 0 :(得分:3)
这可能是由于构建定义更改为baywet所引起的,尤其是“Repository”选项卡下的“Mappings”部分。
没有任何变量直接引用web.config
文件的路径。另一种方式是:
使用“复制和发布构建工件”任务,将$(Build.SourcesDirectory)
指定为“复制根”,将**\PackageTmp\Web.config
指定为“内容”。这将搜索web.config
文件夹下的PackageTmp
文件并发布。
或者您可以在“Visual Studio Build”步骤中添加/P:outputpath="$(build.artifactstagingdirectory)\Temp"
参数,将输出文件复制到$(build.artifactstagingdirectory)\Temp
文件夹,然后在“发布工件任务”步骤中输入{ {1}}发布$(build.artifactstagingdirectory)\Temp\_PublishedWebsites\YourProjectName\Web.config
文件。
答案 1 :(得分:2)
您可能更新了构建定义,并且任务已更新到最新版本,而您没有注意到(查看任务历史记录中的版本号)。
我不知道您正在寻找哪个变量,但$(BuildConfiguration)会为您提供"发布"或"调试"路径的一部分。
$(build.stagingDirectory)将为您提供文件在被收集为工件之前被复制的路径
然后minimatch模式也可以是像** \ Web.Config
这样的选项
祝你好运。