MSBuild - Запись символов Escape в файлы - PullRequest
6 голосов
/ 27 января 2010

У меня есть сценарий, очень похожий на тот, который описан в этом посте . Он описывает, как загрузить содержимое файла, содержащего свойства и элементы, и убедиться, что они разрешены как часть процесса. Я делаю то же самое, за исключением записи содержимого в другой текстовый файл (обычно файл .ini).

Короче, я бы начал с импорта проекта / группы свойств, которая содержит этот текст:

; -----------

[заголовок]

Настройки1 = $ (FirstValue)

Настройки2 = $ (SecondValue)

SETTING3 = список, из; значений; разделителями, а к; * 1016 с запятой *

setting4 = бла бла бла

; -----------

и, надеюсь, запишите его в новый файл .ini, содержащий следующее:

; -----------

[заголовок]

setting1 = значение, разрешенное msbuild

setting2 = другое значение, разрешенное msbuild

SETTING3 = список, из; значений; разделителями, а к; * 1034 с запятой *

setting4 = бла бла бла

; -----------

Единственная проблема в том, что некоторые файлы будут содержать точки с запятой. Я могу жить без комментариев, но они также используются как часть ценностей, например в списках. Это результат использования задачи WriteLinesToFile. Точки с запятой рассматриваются как escape-символы и приводят к появлению новых строк, поэтому значение 'setting3' в приведенном выше примере будет разбито на 6 строк.

Есть ли способ обойти это без реализации моей собственной задачи?

Заранее спасибо за помощь!

1 Ответ

5 голосов
/ 12 октября 2010

У меня была похожая ситуация, но я просто использовал статический текст, содержащий точки с запятой в задаче WriteLinesToFile. Я заставил его работать, используя% 3B в качестве escape-символа для точки с запятой.

Если вы можете заставить точки с запятой правильно отображаться в значении в памяти (используйте задачу «Сообщение», чтобы проверить это), то вам может понадобиться просто заменить их на% 3B для записи файла.

...