从MSBuild中的文件中读取单个值

M. *_*ley 3 msbuild version

我正在尝试从MSBuild中的文件中读取版本号:

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

我只需要这个文件的第一行.如何将该值与另一个字符串连接起来WriteLinesToFile?这不起作用:

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

我收到一个错误:

错误MSB4012:表达式"[assembly:AssemblyVersion("@(VersionNumber)")]"不能在此上下文中使用.项目列表不能与期望项目列表的其他字符串连接.使用分号分隔多个项目列表

Dai*_*oto 8

我不是太熟悉的MSBuild,但改变OutputReadLinesFromFile是一个属性,并使用$访问它在WriteLinesToFile似乎工作:

<Target Name="BeforeBuild">
    <ReadLinesFromFile File="@(VersionFile)">
        <Output TaskParameter="Lines" PropertyName="VersionNumber" />
    </ReadLinesFromFile>
    <WriteLinesToFile
        File="output.txt"
        Lines="[assembly: AssemblyVersion(&quot;$(VersionNumber)&quot;)]" />
</Target>
Run Code Online (Sandbox Code Playgroud)