TeamCity文件内容替换程序:字符串索引超出范围

TeamCity文件内容替换程序:字符串索引超出范围,teamcity,teamcity-9.1,Teamcity,Teamcity 9.1,我正在尝试使用TeamCity文件内容替换程序生成功能替换App.config文件(.NET console项目)中的某些键。 如上文所述,我已详细说明 处理文件:我想替换的文件 查找内容:RegEx,表示我要替换的文本 替换为:我喜欢用其替换文本的TeamCity变量 如果替换为文本足够短,则一切正常,例如dummyText可以工作,但是如果使用较长的值,例如\\Server675X\Shared\Artifactory\,则会出现问题,生成日志中收到的错误消息如下: [File Conten

我正在尝试使用TeamCity文件内容替换程序生成功能替换App.config文件(.NET console项目)中的某些键。 如上文所述,我已详细说明

处理文件:我想替换的文件
查找内容: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
[文件内容替换器]将替换“\\Server675X\Shared\Artifactory\”应用于由通配符匹配的文件中由模式“(?)”匹配的行:*/SolutionName/App.config。。。
[File Content Replacer]将“(?)”替换为“\\Server675X\Shared\Artifactory\”时出错:字符串索引超出范围:32。检查您的设置。
[File Content Replacer]替换文件内容时出错:字符串索引超出范围:32
我可以看到32正是替换字符串的长度,问题是我需要检查/修改什么设置才能进行替换

PS:我正在使用TeamCity Enterprise 9.1.7(构建37573)



终于找到了问题的解决方案,错误消息非常误导人。实际问题在于逃避反斜杠

使用
\\Server675X\Shared\Artifactory\
会出现错误

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

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

最好是收到一条相关的错误消息,说找到了未转义的字符或类似的东西

希望这对别人有帮助