我正在研究 TFS 上的构建定义。解决该项目问题的当前方法是触发构建,获取已部署的安装文件,然后在 app.config (多个区域使用的产品,只是一个值会发生变化),然后手动触发另一个构建。对每个区域重复此操作。 我正在尝试使这一过程自动化,而我的方法是使用 Powershell 内联脚本构建步骤来更改app.config中的值,然后重复“ 构建解决方案” ”和“ 复制发布工件” ”的构建步骤。我一直得到的错误是:
工件X的Artifact安装程序已经存在。
是否有更好的方法?我对TFS Build定义的可能性不太熟悉。
编辑:
该构建现在可以运行了,问题在于Powershell脚本似乎没有生效,但是我已经在其他编辑文件的地方对其进行了测试。检查放置位置,有多个相同的安装文件。是否需要将其检出并再次检入?
这是脚本:
(get-content $(Build.SourcesDirectory)\Source\projectname\app.config) |
Foreach-Object {$_ -replace "$ServerRegionCE","$ServerRegionUK"} |
set-content $(Build.SourcesDirectory)\Source\projectname\app.config
答案 0 :(得分:1)
问题在于Powershell脚本似乎没有生效
根本原因是所引用变量的语法不正确。
在PowerShell脚本中,您需要使用变量$env:BUILD_SOURCESDIRECTORY
而不是$(Build.SourcesDirectory)
它也适用于自定义定义的变量。因此,如果您在构建过程中定义了变量$ServerRegionCE
和$ServerRegionUK
,则可以按照以下格式使用它们:
$env:ServerRegionCE
和$env:ServerRegionUK
有关详细信息,请参见Working with variables。
因此,只需尝试以下脚本:
(get-content $env:BUILD_SOURCESDIRECTORY\Source\projectname\app.config) |
Foreach-Object {$_ -replace "$env:ServerRegionCE","$env:ServerRegionUK"} |
set-content $env:BUILD_SOURCESDIRECTORY\Source\projectname\app.config
答案 1 :(得分:0)