MSBuild - 将转义字符写入文件

6
我有一个与此帖子非常相似的情况。它描述了如何加载包含属性和项的文件内容,并确保它们作为过程的一部分得到解析。我正在做同样的事情,只是将内容写入另一个文本文件(通常是.ini文件)。
简而言之,我会从导入包含以下文本的项目/propertygroup开始:

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

[heading]

setting1=$(FirstValue)

setting2=$(SecondValue)

setting3=list;of;values;delimited;by;semicolons

setting4=bla bla bla

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

并希望将其写入一个包含以下内容的新.ini文件中:

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

[heading]

setting1=由msbuild解析的值

setting2=由msbuild解析的另一个值

setting3=list;of;values;delimited;by;semicolons

setting4=bla bla bla

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

唯一的问题是有些文件将包含分号。我可以不使用注释,但它们也用作值的一部分,例如在列表中。这是使用WriteLinesToFile任务的结果。分号被视为转义字符,并导致换行,因此上面示例中的“setting3”的值将分成6行。
有没有不实现自己的任务就能解决这个问题的方法?
提前感谢您的帮助!
1个回答

7

我曾经遇到过类似的情况,只是在WriteLinesToFile任务中使用了包含分号的静态文本。通过使用%3B作为分号的转义字符,我成功地使它工作。

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


谢谢!应该标记为答案-这是我见过的唯一解决这个问题的方法。 - Scott Jones

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接