MSBuild - 将转义字符写入文件

时间:2010-01-27 11:31:53

标签: file msbuild escaping character

我有一个与in this post描述的场景截然不同的场景。它描述了如何加载包含属性和文件的文件的内容。项目,确保它们作为过程的一部分得到解决。除了将内容写入另一个文本文件(通常是.ini文件)之外,我正在做同样的事情。

简而言之,我首先要导入一个包含此文本的项目/属性组:

  

-----------

     

[标题]

     

设置1 = $(FirstValue)

     

设置2 = $(SecondValue)

     

setting3 =列表;值;定界;由;分号

     

setting4 = bla bla bla

     

-----------

&安培;希望将其写入包含以下内容的新.ini文件:

  

-----------

     

[标题]

     

setting1 =由msbuild解析的值

     

setting2 =由msbuild解析的另一个值

     

setting3 =列表;值;定界;由;分号

     

setting4 = bla bla bla

     

-----------

唯一的问题是某些文件将包含分号。我可以没有评论地生活,但它们也被用作价值观的一部分,例如在列表中。这是使用WriteLinesToFile任务的结果。分号被视为转义字符&导致换行,所以上面例子中'setting3'的值将被分成6行。

如果不执行我自己的任务,有没有解决方法呢?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

我有类似的情况,但只是在WriteLinesToFile任务中使用包含分号的静态文本。我通过使用%3B作为分号的转义字符来实现它。

如果你可以让分号在内存中正确显示(使用Message任务来检查),那么你可能只需要用%3B替换它们来写出文件。