2012-10-08 5 views
3

에서 파일에서 단일 값을 읽기 :내가 MSBuild에있는 파일의 버전 번호를 읽으려고 MSBuild를

<ItemGroup> 
    <VersionFile Include="Properties\VERSION" /> 
</ItemGroup> 
<Target Name="BeforeBuild"> 
    <ReadLinesFromFile File="@(VersionFile)"> 
     <Output TaskParameter="Lines" ItemName="VersionNumber" /> 
    </ReadLinesFromFile> 
</Target> 

나는 단지이 파일의 첫 번째 줄이 필요합니다. 해당 값을 WriteLinesToFile의 다른 문자열과 어떻게 연결할 수 있습니까? 이 작동하지 않습니다

<WriteLinesToFile 
    File="$(AssemblyVersionFile)" 
    Lines="[assembly: AssemblyVersion(&quot;@(VersionNumber)&quot;)]" /> 

내가 오류 얻을 :

error MSB4012: The expression "[assembly: AssemblyVersion("@(VersionNumber)")]" cannot be used in this context. Item lists cannot be concatenated with other strings where an item list is expected. Use a semicolon to separate multiple item lists.`

답변

7

내가 MSBuild를 너무 잘 알고 아니에요을하지만 속성으로 ReadLinesFromFileOutput 변경하고 $를 사용하면에 액세스 할 수 WriteLinesToFile 다음과 같이 작동합니다.

<Target Name="BeforeBuild"> 
    <ReadLinesFromFile File="@(VersionFile)"> 
     <Output TaskParameter="Lines" PropertyName="VersionNumber" /> 
    </ReadLinesFromFile> 
    <WriteLinesToFile 
     File="output.txt" 
     Lines="[assembly: AssemblyVersion(&quot;$(VersionNumber)&quot;)]" /> 
</Target> 
관련 문제