WriteLinesToFile タスク
指定したアイテムのパスを指定したテキスト ファイルに書き込みます。
タスク パラメーター
WriteLinestoFile
タスクのパラメーターの説明を次の表に示します。
パラメーター | 説明 |
---|---|
File |
必須の ITaskItem 型のパラメーターです。 項目を書き込むファイルを指定します。 |
Lines |
省略可能な ITaskItem[] 型のパラメーターです。ファイルに書き込む項目を指定します。 既定値は空のリストです。 |
Overwrite |
省略可能な Boolean 型のパラメーターです。true の場合、タスクはファイル内の既存のコンテンツをすべて上書きします。 既定値は false です。 |
Encoding |
省略可能な String 型のパラメーターです。文字エンコードを選択します。たとえば、"Unicode" を選択します。 既定値は UTF-8 です。 Encoding も参照してください。 |
WriteOnlyWhenDifferent |
省略可能な Boolean 型のパラメーターです。true の場合、ターゲット ファイルを指定すると、そのターゲット ファイルが最初に読み取られ、タスクによって書き込まれる内容と比較されます。 等しい場合、ファイルはディスクに書き込まれず、タイムスタンプが保持されます。 既定値は false です。 |
解説
Overwrite
が true
の場合、新しいファイルを作成し、内容をそのファイルに書き込んだ後、ファイルを閉じます。 既存のターゲット ファイルは上書きされます。 Overwrite
が false
の場合、ファイルにコンテンツを追加します。ターゲット ファイルがまだ存在しない場合は、ファイルを作成します。
上記のパラメーター以外に、このタスクは 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>