0

我正在尝试使用 TeamCity 文件内容替换器构建功能来替换我的 App.config 文件(.NET 控制台项目)中的某些键。如官方文档中所述,我已指定

处理文件我想在
查找内容中进行替换的文件: RegEx,表示我想替换的文本
替换为:我想替换文本的 TeamCity 变量

如果替换为文本足够短,则一切正常,例如dummyText可以工作,但是较长的值会出现问题,例如\\Server675X\Shared\Artifactory\构建日志中收到的错误消息如下:

[File Content Replacer] Applying replacement "\\Server675X\Shared\Artifactory\" to lines matched by pattern "(?<=key="MappingFileLocation" value=").*(?="\/>)" in the files matched by wildcard: **/SolutionName/App.config...

[File Content Replacer] Error replacing "(?<=key="MappingFileLocation" value=").*(?="\/>)" with "\\Server675X\Shared\Artifactory\": string index out of range: 32. Check your settings.

[File Content Replacer] Error replacing file contents: string index out of range: 32

我可以看到 32 正是替换字符串的长度,问题是我需要检查/修改什么设置才能使这种替换成为可能

PS:我使用的是 TeamCity Enterprise 9.1.7(内部版本 37573)


4

1 回答 1

0

终于找到了问题的解决方法,错误信息很误导实际问题在于转义反斜杠

使用\\Server675X\Shared\Artifactory\给出错误

替换文件内容时出错:字符串索引超出范围:32

但是,当我们使用\\\\Server675X\\Shared\\Artifactory\\没有错误时,请注意我们如何转义反斜杠。

最好收到一条相关的错误消息,说明找到未转义的字符或类似的内容。

希望这可以帮助某人!

于 2018-08-23T08:28:19.017 回答