Поделиться через


WriteLinesToFile - задача

Записывает пути указанных элементов в заданный текстовый файл.

Параметры задачи

В следующей таблице приводятся параметры задачи WriteLinestoFile.

Параметр Описание
File Обязательный параметр ITaskItem .

Указывает файл, в который нужно записать элементы.
Lines Необязательный параметр ITaskItem[].

Указывает элементы, которые нужно записать в файл. По умолчанию используется пустой список.
Overwrite Необязательный параметр Boolean.

Если задано значение true, задача перезаписывает существующее содержимое файла. По умолчанию — false.
Encoding Необязательный параметр String.

Выбирает кодировку символов, например Юникод. По умолчанию — UTF-8. См. также Encoding.
WriteOnlyWhenDifferent Необязательный параметр Boolean.

Если задано значение true, то указанный целевой файл (если он существует) будет считываться первым для сравнения с данными, которые записала бы задача. Если они совпадают, то файл не записывается на диск, а метка времени сохраняется. По умолчанию — false.

Замечания

Если Overwrite имеет значение true, создается файл, в него записывается содержимое, а затем файл закрывается. Если целевой файл уже существует, он будет переопределен. Если Overwrite имеет значение false, содержимое добавляется к файлу. Если конечный файл не существует, он создается.

Помимо перечисленных выше параметров, эта задача наследует параметры от класса TaskExtension, который, в свою очередь, наследует от класса Task. Список этих дополнительных параметров и их описания см. в статье Базовый класс TaskExtension.

Пример

В этом примере задача WriteLinesToFile используется для записи путей к элементам из коллекции MyItems в файл, указанный в коллекции элементов MyTextFile.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <MyTextFile Include="Items.txt"/>
        <MyItems Include="*.cs"/>
    </ItemGroup>

    <Target Name="WriteToFile">
        <WriteLinesToFile
            File="@(MyTextFile)"
            Lines="@(MyItems)"
            Overwrite="true"
            Encoding="Unicode"/>
    </Target>

</Project>

В этом примере свойство с внедренными символами новой строки используется для записи текстового файла, содержащего несколько строк. Если запись в Lines содержит внедренные символы новой строки, новые строки включаются в выходной файл. Таким образом можно ссылаться на многострочные свойства.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

  <Target Name="WriteLaunchers" AfterTargets="CopyFilesToOutputDirectory">
      <PropertyGroup>
        <LauncherCmd>
@ECHO OFF
dotnet %~dp0$(AssemblyName).dll %*
        </LauncherCmd>
      </PropertyGroup>

      <WriteLinesToFile
        File="$(OutputPath)$(AssemblyName).cmd"
        Overwrite="true"
        Lines="$(LauncherCmd)" />
  </Target>
</Project>

См. также