WriteLinesToFile görevi
Belirtilen öğelerin yollarını belirtilen metin dosyasına yazar.
Görev parametreleri
Aşağıdaki tabloda görevin parametreleri WriteLinestoFile
açıklanmaktadır.
Parametre | Tanım |
---|---|
File |
Gerekli ITaskItem parametresi. Öğeleri yazacak dosyayı belirtir. |
Lines |
İsteğe bağlı ITaskItem[] parametre.Dosyaya yazacak öğeleri belirtir. Varsayılan değer boş listedir. |
Overwrite |
İsteğe bağlı Boolean parametre.ise true , görev dosyadaki mevcut içeriğin üzerine yazar. Varsayılan false değeridir. |
Encoding |
İsteğe bağlı String parametre.Karakter kodlamasını seçer, örneğin, "Unicode". Varsayılan değer UTF-8'dir. Ayrıca Encodingbkz. . |
WriteOnlyWhenDifferent |
İsteğe bağlı Boolean parametre.ise true , belirtilen hedef dosya varsa, görevin yazacağı değerle karşılaştırmak için önce okunur. Aynıysa, dosya diske yazılmaz ve zaman damgası korunur. Varsayılan false değeridir. |
Açıklamalar
ise Overwrite
true
, yeni bir dosya oluşturur, içeriği dosyaya yazar ve dosyayı kapatır. Hedef dosya zaten varsa, üzerine yazılır. ise Overwrite
false
, içeriği dosyaya ekler ve hedef dosya zaten yoksa oluşturulur.
Yukarıda listelenen parametrelere ek olarak, bu görev kendi sınıfından TaskExtension devralan sınıfından Task parametreleri devralır. Bu ek parametrelerin ve açıklamalarının listesi için bkz . TaskExtension temel sınıfı.
Örnek
Aşağıdaki örnek, öğe koleksiyonundaki WriteLinesToFile
öğelerin MyItems
yollarını öğe koleksiyonu tarafından MyTextFile
belirtilen dosyaya yazmak için görevi kullanır.
<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>
Bu örnekte, birden çok satır içeren bir metin dosyası yazmak için eklenmiş yeni satırlara sahip bir özellik kullanıyoruz. içindeki Lines
bir girdide yeni satır karakterleri eklenmişse, yeni satırlar çıkış dosyasına eklenir. Bu şekilde, çok satırlı özelliklere başvurabilirsiniz.
<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>