0

SharpDevelop 4.1のプロジェクトテンプレートを作成しています。このテンプレートのファイルの1つは、NLog構成を含むXML構成ファイルです。問題は、SharpDevelopテンプレート自体のNLogレイアウトと変数置換が同じ構文を使用することです。つまり、${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}の置換を防止または回避するにはどうすればよいですか?

4

1 に答える 1

0

StringParserクラスでSharpDevelopのソースコードを調べたところ、タグのエスケープメカニズムがないようです。

ただし、NLogレイアウトレンダラーを変更してSharpDevelopタグと一致しないようにすることで回避できますが、NLogでも同じ効果があります。

<target xsi:type="File" name="file" layout="${time:universalTime=False} ${level} ${logger} ${message}" fileName="${ProjectName}.log" />
于 2011-11-02T18:43:15.363 に答える