Возникли проблемы с двойными кавычками в строке ReplacementText для цели MSBuild FileUpdate - PullRequest
1 голос
/ 15 ноября 2011

У меня есть проблема с выяснением, как правильно избегать двойных кавычек в моей цели MSBuild FileUpdate, в атрибуте ReplacementText.

То, что я пытаюсь сделать, очень просто.Я хочу найти AssemblyFileVersion("1.0.0.0") и заменить его на AssemblyFileVersion("1.0.0.<revision number here>").Я использую элемент FileUpdate, который выглядит следующим образом:

<FileUpdate Files="Properties\AssemblyInfo.cs" Regex="AssemblyFileVersion(\(\x22)(\d+)\.(\d+)\.(\d+)\.(\d+)" ReplacementText="AssemblyFileVersion$1$2.$3.$4.$(build_vcs_number_1)" />

Это прекрасно работает, но это, конечно, кажется странным способом сделать это!По сути, так как я не смог заставить работать двойные кавычки в атрибуте ReplacementText, мне пришлось сгруппировать "из строки Regex, а затем использовать номер группы, чтобы вставить" в ReplacementText (на самом деле,Я сгруппировал (и ", но мне нужно было только сгруппировать").

Я перепробовал все стандартные методы - \ "," ", \ x22, \ x22, \",и ничего не работает. Должно быть, я упускаю что-то очевидное здесь, но что это?

Смущенный ...

1 Ответ

4 голосов
/ 15 ноября 2011

В * ML в строках в кавычках используйте &quot; для представления кавычек.

Например:

<FileUpdate Files="Properties\AssemblyInfo.cs" Regex="(AssemblyFileVersion\(&quot;\d+\.\d+\.\d+\.)\d+(&quot;\))" ReplacementText="$1$(build_vcs_number_1)$2" />

Возможно, вместо этого вы можете использовать одинарные кавычки, например:

<FileUpdate Files="Properties\AssemblyInfo.cs" Regex='(AssemblyFileVersion\("\d+\.\d+\.\d+\.)\d+("\))' ReplacementText="$1$(build_vcs_number_1)$2" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...