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

dom*_*mer 4 msbuild msbuild-task

我正在使用WriteLinesToFile来更新更改日志文件(txt).它将文本附加到文件的末尾.理想情况下,我希望能够将更改写入此文件的开头.

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

Jul*_*rau 10

我没有在自定义任务包中看到类似的东西.

你可以通过使用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>
Run Code Online (Sandbox Code Playgroud)

或者您可以创建自定义任务.

  • 为WriteLinesToFile添加条件 - > Condition ="@(Log)!=''和(@(Log)!='\ r \n'或@(Log)!='\n')" (2认同)