Если вы знаете, где находится файл, который был записан, вы можете использовать задачу ReadLinesFromFile и затем записывать все сообщения. Например, посмотрите на файл проекта ниже.
<Project DefaultTargets="Demo" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_File>$(MSBuildProjectFullPath)</_File>
</PropertyGroup>
<Target Name="Demo">
<ReadLinesFromFile File="$(_File)">
<Output ItemName="_FileContents" TaskParameter="Lines"/>
</ReadLinesFromFile>
<Message Text="File contents: '$(MSBuildProjectFullPath)'"/>
<!-- Prints one after another with a ';' between each line -->
<Message Text="@(_FileContents)"/>
<Message Text="-------------"/>
<!-- Prints one after another with each on its own line -->
<Message Text="%(_FileContents.Identity)"/>
</Target>
</Project>
Этот файл читает текущий файл (через $(MSBuildProjectFullPath)
) и выводит результаты на консоль. Я показал, как распечатать его двумя способами, один показывает; разделенные значения, а другой показывает одно на отдельной строке. Обратите внимание, что задача ReadLinesFromFile не сохраняет начальные (и, возможно, даже конечные) пробелы.
Вот результат, когда я выполняю цель Demo.
C:\Data\Development\My Code\Community\MSBuild>msbuild ReadLines.proj /nologo
Build started 5/6/2010 6:29:43 PM.
Project "C:\Data\Development\My Code\Community\MSBuild\ReadLines.proj" on node 1 (default targets).
Demo:
File contents: 'C:\Data\Development\My Code\Community\MSBuild\ReadLines.proj'
<Project DefaultTargets="Demo" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">;<PropertyGroup>;<_Fi
le>$(MSBuildProjectFullPath)</_File>;</PropertyGroup>;<Target Name="Demo">;<ReadLinesFromFile File="$(_File)">;<
Output ItemName="_FileContents" TaskParameter="Lines"/>;</ReadLinesFromFile>;<Message Text="File contents: '$(MS
BuildProjectFullPath)'"/>;<!-- Prints one after another with a ';' between each line -->;<Message Text="@(_FileC
ontents)"/>;<Message Text="-------------"/>;<!-- Prints one after another with each on its own line -->;<Message
Text="%(_FileContents.Identity)"/>;</Target>;</Project>
-------------
<Project DefaultTargets="Demo" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_File>$(MSBuildProjectFullPath)</_File>
</PropertyGroup>
<Target Name="Demo">
<ReadLinesFromFile File="$(_File)">
<Output ItemName="_FileContents" TaskParameter="Lines"/>
</ReadLinesFromFile>
<Message Text="File contents: '$(MSBuildProjectFullPath)'"/>
<!-- Prints one after another with a ';' between each line -->
<Message Text="@(_FileContents)"/>
<Message Text="-------------"/>
<!-- Prints one after another with each on its own line -->
<Message Text="%(_FileContents.Identity)"/>
</Target>
</Project>
Done Building Project "C:\Data\Development\My Code\Community\MSBuild\ReadLines.proj" (default targets).