2010-01-27 13 views
6

Tôi có một kịch bản rất giống với kịch bản được mô tả in this post. Nó mô tả cách tải nội dung của tệp có chứa các thuộc tính & mục, đảm bảo chúng được giải quyết như một phần của quy trình. Tôi đang làm điều tương tự, ngoại trừ viết các nội dung đi đến một tập tin văn bản (thường là tập tin .ini).MSBuild - Viết các ký tự thoát cho các tập tin

Nói tóm lại tôi muốn bắt đầu bằng cách nhập một dự án/propertygroup chứa văn bản này:

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

[heading]

setting1 = $ (FirstValue)

setting2 = $ (SecondValue)

setting3 = danh sách; của; giá trị; được phân tách; bởi; dấu chấm phẩy

setting4 = bla bla bla

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

& hy vọng viết nó đi vào một tập tin .ini mới có chứa những điều sau đây:

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

[tiêu đề]

setting1 = giá trị giải quyết bằng cách msbuild

setting2 = một giá trị giải quyết bằng cách msbuild

setting3 = danh sách; của; giá trị ; delimited; by; semicolons

setting4 = bla bla bla

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

Chỉ có vấn đề là một số tệp sẽ chứa dấu chấm phẩy. Tôi có thể sống mà không có nhận xét, nhưng chúng cũng được sử dụng như một phần của giá trị, ví dụ: trong danh sách. Đây là kết quả của việc sử dụng tác vụ WriteLinesToFile. Dấu chấm phẩy được coi là ký tự thoát & dẫn đến các dòng mới, vì vậy giá trị của 'setting3' trong ví dụ trên sẽ được chia thành 6 dòng.

Có cách nào để giải quyết vấn đề này mà không thực hiện tác vụ của riêng tôi không?

Cảm ơn bạn đã trợ giúp!

Trả lời

5

Tôi đã có một tình huống tương tự nhưng chỉ sử dụng văn bản tĩnh có chứa dấu chấm phẩy trong tác vụ WriteLinesToFile. Tôi đã làm cho nó hoạt động bằng cách sử dụng% 3B như một ký tự thoát cho dấu chấm phẩy.

Nếu bạn có thể nhận được dấu chấm phẩy để hiển thị chính xác trong giá trị trong bộ nhớ (sử dụng tác vụ Thư để kiểm tra điều này) thì bạn có thể chỉ cần thay thế bằng% 3B để ghi tệp ra.