代码之家  ›  专栏  ›  技术社区  ›  dommer

是否有MSBuild任务将向文件的*start*写入行?

  •  4
  • dommer  · 技术社区  · 14 年前

    我正在使用WriteListFile更新更改日志文件(txt)。它将文本追加到文件末尾。理想情况下,我希望能够将更改写入 这个文件的。

    是否有一个简单的任务(例如,在社区或扩展包中)可以做到这一点?

    1 回复  |  直到 14 年前
        1
  •  11
  •   weir    9 年前

    我在自定义任务包中还没见过这样的东西。

    你可以利用 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>
    

    或者可以创建自定义任务。