2009-07-02 6 views
8

Mam plik, który ustawiam przy użyciu PowerShell, który zawiera numer wersji mojego kompilacji. Muszę uzyskać to w MSBuild, aby móc działać na nim w ramach mojego skryptu kompilacji. Wydaje się to dość proste; Chcę tylko wziąć zawartość pliku i ustawić właściwość na tę wartość.Korzystanie z MSBuild, w jaki sposób ustawić właściwość do zawartości pliku?

Pomyślałem, że może wykonuję zadanie Exec, robiąc "więcej" w moim pliku, a przechwytywanie standardowego wyjścia może załatwić sprawę, ale nie mogę sprawić, żeby to działało. Wygląda na to, że inni mieli również problemy ze standardem i MSBuild. Oto co próbowałem:

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

Odpowiedz

8

Zadaniem ReadLinesFromFile to, co chcesz

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

powiedział, że kolejnym sposobem na to, co implikuje pytanie jest do przechowywania budować informacji num w pliku xml ze schematu MSBuild

coś podobnego

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

a następnie importować th e plik version.properties do głównego pliku msbuild

+0

Dzięki! Po prostu nie mogłem znaleźć tego zadania. FYI, masz niewielki błąd w swoim pierwszym fragmencie kodu. Jest ItemName zamiast produktu: Potem może uzyskać dostęp wynik za pomocą "@ (BuildNumber)". –

+0

Ack - teraz muszę zmienić element listy (@) na właściwość ($). Wszelkie wskazówki na ten temat? –

+0

Myślę, że to wymyśliłem: