Существует ли задача MSBuild, которая будет записывать строки в * начало * файла? - PullRequest
4 голосов
/ 03 сентября 2010

Я использую WriteLinesToFile для обновления файла журнала изменений (txt). Добавляет текст в конец файла. В идеале я хотел бы иметь возможность записать изменения в start этого файла.

Есть ли простая задача (например, в пакетах Community или Extension), которая делает это?

1 Ответ

10 голосов
/ 03 сентября 2010

Я не видел ничего подобного в пользовательском пакете задач.

Вы можете обмануть, используя ReadLinesFromFile и WriteLinesToFile:

<PropertyGroup>
  <LogFile>log.txt</LogFile>
</PropertyGroup>

<ItemGroup>
  <Log Include="Line1"/>
  <Log Include="Line2"/>
</ItemGroup>

<Target Name="WriteFromStart">
  <ReadLinesFromFile File="$(LogFile)" Condition="Exists('$(LogFile)')">
    <Output TaskParameter="Lines" ItemName="Log"/>
  </ReadLinesFromFile>

  <WriteLinesToFile File="$(LogFile)" 
                    Lines="@(Log)" 
                    Condition="@(Log) != '' And (@(Log) != '\r\n' Or @(Log) != '\n')"
                    Overwrite="true">
  </WriteLinesToFile>
</Target>

Или вы можете создать пользовательскую задачу.

...