2009-07-02 16 views
8

Kuruluşumun sürüm numarasını içeren PowerShell kullanarak ayarladığım bir dosyam var. Bunu MSBuild içinde bulmalıyım, böylece derleme betiğimde hareket edebilirim. Yeterince basit görünüyor; Sadece dosyanın içeriğini almak ve bu değere bir özellik koymak istiyorum.MSBuild'i kullanarak, bir dosyanın içeriğine nasıl özellik ayarlayabilirim?

Belki de bir Exec görevi yapıp, dosyamda "daha fazla" bir şeyler yapmanın ve standart çıktı yakalamanın hile yapmasını düşündüm, ancak bunu işe yaramayacak gibi görünmüyor olabilir. Diğerlerinin de stdout ve MSBuild ile ilgili problemleri olduğu görülüyor. İşte ben denedim budur:

<Exec Command="more $(BuildDirectory)\version.txt" Outputs="stdout"> 
    <Output TaskParameter="Outputs" ItemName="BuildNumber" /> 
</Exec> 

cevap

8

ReadLinesFromFile görev istediğini

<ReadLinesFromFile File="Version.Txt"> 
    <Output TaskParameter="Lines" Item="BuildNumber"/> 
</ReadLinesFromFile> 

, sorunuz ne anlama geldiği yapmanın başka bir yolu bir xml dosyasında num bilgi inşa saklamaktır söyledi bir MSBuild şema

şey

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
<PropertyGroup> 
    <BuildNumber>10</BuildNumber> 
    <RevNumber>5</RevNumber> 
</PropertyGroup> 
</Project> 

böyle sonra th içe ile e version.properties dosyası, ana msbuild dosyasına indir

+0

Teşekkürler! Bu görevi bulamadım. FYI, ilk kod snippet'inizde hafif bir hata var. <Çıktı TaskParameter = "Çizgiler" ItemName = "BuildNumber" /> Sonra erişebilir : Bu ItemName yerine Öğe olduğunu "@ (BuildNumber)" kullanarak çıktı. –

+0

Ack - şimdi bir liste öğesinden (@) bir özelliğe ($) geçmem gerekiyor. Bu konuda herhangi bir ipucu var mı? –

+0

Sanırım bunu çözdüm:

İlgili konular