VSTS构建:在打包之前替换链接文件中的字符串

时间:2016-12-19 10:29:03

标签: azure-pipelines azure-pipelines-build-task azure-pipelines-release-pipeline

我使用VSTS构建和发布包含多个aspnet项目的解决方案。解决方案级别是一个包含dev / test和production的所有数据库连接字符串的文件夹。这些文件作为文件链接包含在项目中,并且始终可以选择复制它们。 Web.config转换会根据构建配置将configSource更改为所需的文件。

  <connectionStrings configSource="Configuration\ConnectionStrings.Development.config" xdt:Transform="Replace" />

这一切都很棒。对于VSTS VSBuild任务,我有这些参数来为webdeploy生成一个zip文件

  

/ p:DeployOnBuild = true / p:WebPublishMethod = Package   / p:PackageAsSingleFile = true / p:SkipInvalidConfigurations = true   /p:PackageLocation="$(build.stagingDirectory)"   / P:DefineConstants =&#34; $(CompilerConstants)&#34;

现在出现了我的问题:我希望将当前项目名称作为连接字符串中的应用程序名称,以查看查询来自SQL Server概要分析器的位置。我过去使用额外的构建目标

  <Target Name="ReplaceAppNamesInConnectionStrings">
    <FindAndReplaceInFile FileName="$(PublishDir)\configuration\ConnectionStrings.Development.config" SearchString="@@APPNAME@@" ReplacementString="$(ProjectName)" FileMustExist="False" />
    <FindAndReplaceInFile FileName="$(PublishDir)\configuration\ConnectionStrings.Production.config" SearchString="@@APPNAME@@" ReplacementString="$(ProjectName)" FileMustExist="False" />
  </Target>

如何使用VSTS执行此操作?它似乎总是在创建zip文件之前将文件从链接源复制到输出中,我可以将其替换掉。我尝试过post build事件或VSTS替换令牌步骤。

0 个答案:

没有答案