Заменитель содержимого файла TeamCity: строковый индекс вне диапазона
Я пытаюсь использовать функцию сборки TeamCity File Content Replacer для замены определенных ключей в моем файле App.config (консольный проект.NET). Как указано в официальной документации, я указал
Файл процесса: файл, в котором я хотел бы сделать замену
Найдите что: RegEx, который обозначает текст, который я хотел бы заменить
Заменить на: переменная TeamCity, с которой я хотел бы заменить текст
Все работает нормально, если Replace With text достаточно короток, например, 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)
1 ответ
Наконец, нашли решение проблемы, сообщение об ошибке очень вводит в заблуждение, реальная проблема заключается в том, чтобы избежать обратной косой черты
с помощью \\Server675X\Shared\Artifactory\
выдает ошибку
Ошибка замены содержимого файла: индекс строки вне диапазона: 32
Однако, когда мы используем \\\\Server675X\\Shared\\Artifactory\\
ошибки нет, обратите внимание, как мы избежали обратной косой черты.
Было бы лучше получить соответствующее сообщение об ошибке, в котором говорится, что найден неэкранированный символ или что-то в этом роде.
Надеюсь, это поможет кому-то!