Как предотвратить подстановку переменных в шаблоне проекта SharpDevelop - PullRequest
0 голосов
/ 02 ноября 2011

Я создаю шаблон проекта для SharpDevelop 4.1, и один из файлов в этом шаблоне является XML-файлом конфигурации, который содержит конфигурацию NLog. Проблема в том, что макеты NLog и подстановка переменных для самого шаблона SharpDevelop используют один и тот же синтаксис. А именно проблема ${time} в макете:

<target xsi:type="File" name="file" layout="${time} ${level} ${logger} ${message}" fileName="${ProjectName}.log" />

Он предназначен для вывода в результирующий файл, как есть, однако расширение шаблона SharpDevelop заменяет его временем развертывания шаблона:

<target xsi:type="File" name="file" layout="10:37 AM ${level} ${logger} ${message}" fileName="TestProject.log" />

Мне все еще нужна замена $ {ProjectName}. Как я могу предотвратить или обойти замену $ {time}?

1 Ответ

0 голосов
/ 02 ноября 2011

После просмотра исходного кода SharpDevelop в классе StringParser выясняется, что для тегов нет механизма выхода.

Но я могу обойти его, изменив средство визуализации макета NLog, чтобы оно больше не совпадало с тегом SharpDevelopно все равно имеет тот же эффект в NLog:

<target xsi:type="File" name="file" layout="${time:universalTime=False} ${level} ${logger} ${message}" fileName="${ProjectName}.log" />
...