2012-05-25 20 views
8

Powershell acemi .. Yani bir powershell komut dosyası ile bir Nuget paketi oluşturdukPowershell Düzenleme Xml Tutarsız Hattı burada

Bitiş rapor etmek. Powershell betiği, Visual Studio projemde yüklü olduğunda xml şemasını değiştirir. Sorun olma .... komut sonra

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

gibi xml dosyası içinde bir çok hatlı blok yorumunu varsa

çalıştırılan Visual Studio ile mesaj açılır ve benim dosya biten "tutarsız hattı vardır diyor ......"

hiçbir açıklama yoktur, ya

<!--foo--> 

gibi tek satırlık açıklamalar varsa sorun yok ise. Her nasılsa blok yorumunda biten satır, CRLF'den powershell işlevleri tarafından başka bir şeye dönüştürülür.

Bu benim powershell yükleme için komut dosyası ve ben de

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

çizgisinde bir şey denedim Ama bu mesajı almaya devam xml dosyası

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

$xml.Save($xmlFileLocation) 

tasarrufu olduğunu ...

Her türlü yardım/yardım çok takdir edilecektir.

+0

http://stackoverflow.com/a/6073198/8446 yardımcı olabilir mi acaba? –

cevap

7

Boru Get-ContentOut-String içinden:

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

Sadece bu test: Out-String olmadan, ben Visual Studio mesajı görür. Out-String ile, yok ve yorumlar yalnız bırakılır.

+0

Geçici çözüm için teşekkürler – rom99