次の方法で共有


WriteLinesToFile タスク

指定したアイテムのパスを指定したテキスト ファイルに書き込みます。

タスク パラメーター

WriteLinestoFile タスクのパラメーターの説明を次の表に示します。

パラメーター 説明
File 必須の ITaskItem 型のパラメーターです。

項目を書き込むファイルを指定します。
Lines 省略可能な ITaskItem[] 型のパラメーターです。

ファイルに書き込む項目を指定します。 既定値は空のリストです。
Overwrite 省略可能な Boolean 型のパラメーターです。

true の場合、タスクはファイル内の既存のコンテンツをすべて上書きします。 既定値は false です。
Encoding 省略可能な String 型のパラメーターです。

文字エンコードを選択します。たとえば、"Unicode" を選択します。 既定値は UTF-8 です。 Encoding も参照してください。
WriteOnlyWhenDifferent 省略可能な Boolean 型のパラメーターです。

true の場合、ターゲット ファイルを指定すると、そのターゲット ファイルが最初に読み取られ、タスクによって書き込まれる内容と比較されます。 等しい場合、ファイルはディスクに書き込まれず、タイムスタンプが保持されます。 既定値は false です。

解説

Overwritetrue の場合、新しいファイルを作成し、内容をそのファイルに書き込んだ後、ファイルを閉じます。 既存のターゲット ファイルは上書きされます。 Overwritefalse の場合、ファイルにコンテンツを追加します。ターゲット ファイルがまだ存在しない場合は、ファイルを作成します。

上記のパラメーター以外に、このタスクは TaskExtension クラスからパラメーターを継承します。このクラス自体は、Task クラスから継承されます。 これらの追加のパラメーターの一覧とその説明については、「TaskExtension Base Class」を参照してください。

次の例では、WriteLinesToFile タスクを利用し、MyTextFile 項目コレクションにより指定されたファイルに、MyItems 項目コレクションの項目のパスを書き込みます。

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

関連項目