2012-05-25 9 views
8

Powershell principiante aquí ..Powershell edición de XML causando Visual Studio para informar inconsistente Final de línea

Así que he creado un paquete Nuget con un script de PowerShell. El script de powershell modifica un esquema xml dentro de mi proyecto de Visual Studio cuando se instala. siendo un problema ....

Si hay un comentario de bloque multi-línea dentro del archivo XML como

<!--<foo> 
    <bar> 
    </bar> 
</foo>--> 

Después se ejecuta el script de Visual Studio aparece un mensaje y dice mi archivo tiene "línea inconsistente terminando ......"

Si no hay ningún comentario, o si hay una sola línea de comentario como

<!--foo--> 

no hay ningún problema. De algún modo, las funciones de powershell cambian la línea que termina en el comentario del bloque de CRLF a algo más.

Ésta es mi script de PowerShell para cargar y guardar el archivo XML

[xml]$xml = gc $xmlFileLocation -encoding utf8 

$xml.Save($xmlFileLocation) 

También he intentado algo en la línea de

set-content -encoding utf8 $xmlFileLocation $xml.outerXml 

Pero guardo en conseguir este mensaje ...

Cualquier sugerencia/ayuda sería muy apreciada.

+0

Me pregunto si http://stackoverflow.com/a/6073198/8446 podría ayudar? –

Respuesta

7

Pipe Get-Content través Out-String:

[xml] $xml = Get-Content 'foo.xml' | Out-String 
$xml.foo.bar = 'baz' 
$xml.Save('foo.xml') 

Acabo de probar esto: sin Out-String, veo el mensaje en Visual Studio. Con Out-String, no, y los comentarios se dejan en paz.

+0

Gracias por la solución – rom99

Cuestiones relacionadas