2010-01-27 8 views
6

Tengo un escenario muy similar al descrito in this post. Describe cómo cargar los contenidos de un archivo que contiene propiedades & elementos, asegurándose de que se resuelvan como parte del proceso. Estoy haciendo lo mismo excepto escribir el contenido en otro archivo de texto (generalmente archivo .ini).MSBuild - Escritura de caracteres de escape en archivos

En resumen me gustaría empezar con la importación de un proyecto/propertyGroup que contiene este texto:

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

[partida]

Ajuste1 = $ (firstValue)

Ajuste2 = $ (SecondValue)

Setting3 = lista; de; valores; delimitada; por; punto y coma

Setting4 = bla bla bla

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

& espero escribir a la basura en un nuevo archivo .ini que contiene lo siguiente:

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

[partida]

Ajuste1 = valor resuelto por msbuild

Ajuste2 = otro valor resuelto por msbuild

Setting3 = lista; de; valores ; delimitado; por; punto y coma

Setting4 = bla bla bla

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

El único problema es que algunos archivos contendrán punto y coma. Puedo vivir sin comentarios, pero también se usan como parte de los valores, por ej. en listas Este es el resultado del uso de la tarea WriteLinesToFile. Los puntos y comas se tratan como caracteres de escape & dando como resultado nuevas líneas, por lo que el valor de 'setting3' en el ejemplo anterior se dividiría en 6 líneas.

¿Hay alguna forma de evitar esto sin implementar mi propia tarea?

¡Gracias de antemano por la ayuda!

Respuesta

5

Tuve una situación similar pero solo uso texto estático que contiene punto y coma en la tarea WriteLinesToFile. Lo hice funcionar usando% 3B como un carácter de escape para punto y coma.

Si puede hacer que los puntos se muestren correctamente en el valor en memoria (use la tarea Mensaje para verificar esto), entonces puede que necesite reemplazarlos con% 3B para escribir el archivo.

Cuestiones relacionadas