Tarefa WriteLinesToFile

Grava os caminhos dos itens especificados no arquivo de texto especificado.

Parâmetros de tarefa

A tabela a seguir descreve os parâmetros da tarefa WriteLinestoFile.

Parâmetro Descrição
File Parâmetro ITaskItem obrigatório.

Especifica o arquivo no qual os itens serão gravados.
Lines Parâmetro opcional ITaskItem[].

Especifica os itens a serem gravados no arquivo. O padrão é a lista vazia.
Overwrite Parâmetro Boolean opcional.

Se true, a tarefa substituirá todo o conteúdo existente no arquivo. O padrão é false.
Encoding Parâmetro String opcional.

Seleciona a codificação de caracteres, por exemplo, "Unicode". Padrão é UTF-8. Consulte também Encoding.
WriteOnlyWhenDifferent Parâmetro Boolean opcional.

Se true, o arquivo de destino especificado, se ele existir, será lido primeiro para comparar o que a tarefa teria gravado. Se idêntico, o arquivo não será gravado no disco, e o carimbo de data e hora será preservado. O padrão é false.

Comentários

Se Overwrite for true, criará um novo arquivo, gravará os conteúdos nele e o fechará. Se o arquivo de destino já existir, ele será substituído. Se Overwrite for false, acrescentará os conteúdos ao arquivo, criando um arquivo de destino, caso ele ainda não exista.

Além dos parâmetros listados acima, essa tarefa herda parâmetros da classe TaskExtension, que herda da classe Task. Para obter uma lista desses parâmetros adicionais e suas descrições, confira Classe base TaskExtension.

Exemplo

O exemplo a seguir usa a tarefa WriteLinesToFile para gravar os caminhos dos itens na coleção de itens MyItems no arquivo especificado pela coleção de itens 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>

Neste exemplo, usamos uma propriedade com novas linhas inseridas para gravar um arquivo de texto com várias linhas. Se uma entrada em Lines tiver caracteres de nova linha inseridos, as novas linhas serão incluídas no arquivo de saída. Dessa forma, você pode fazer referência a propriedades multilinha.

<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>

Confira também