Öğe öğesi (MSBuild)
Kullanıcı tanımlı bir öğeyi ve meta verilerini içerir. MSBuild projesinde kullanılan her öğe bir ItemGroup
öğenin alt öğesi olarak belirtilmelidir.
<Proje>
<Itemgroup>
<Kalem>
Sözdizimi
<Item Include="*.cs"
Exclude="MyFile.cs"
Condition="'String A'=='String B'">
<ItemMetadata1>...</ItemMetadata1>
<ItemMetadata2>...</ItemMetadata2>
</Item>
Meta verileri öznitelik olarak belirtme
MSBuild 15.1 veya sonraki sürümlerinde, geçerli öznitelik listesiyle çakışmayan bir ada sahip meta veriler isteğe bağlı olarak öznitelik olarak ifade edilebilir.
Örneğin, NuGet paketlerinin listesini belirtmek için normalde aşağıdaki söz dizimine benzer bir şey kullanırsınız.
<ItemGroup>
<PackageReference Include="Newtonsoft.Json">
<Version>9.0.1-beta1<Version>
</PackageReference>
</ItemGroup>
Ancak şimdi meta verileri öznitelik olarak geçirebilirsiniz Version
; örneğin, aşağıdaki söz diziminde:
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="9.0.1-beta1" />
</ItemGroup>
Öznitelikler ve öğeler
Öznitelikler, alt ve üst öğeler aşağıdaki bölümlerde açıklanmaktadır.
Özellikler
Öznitelik | Açıklama |
---|---|
Include |
İsteğe bağlı öznitelik. Öğe listesine eklenecek dosya veya joker karakter. |
Exclude |
İsteğe bağlı öznitelik. Öğe listesinden dışlanması gereken dosya veya joker karakter. |
Condition |
İsteğe bağlı öznitelik. Değerlendirilecek koşul. Daha fazla bilgi için bkz . Koşullar. |
Remove |
İsteğe bağlı öznitelik. Öğe listesinden kaldırılacak dosya veya joker karakter. |
MatchOnMetadata |
İsteğe bağlı öznitelik.Remove Başvuruda bulunan öğelerin değerleriyle eşleştirmek yerine, belirtilen meta veri adlarında eşleşmesi için diğer öğelere başvuran öznitelikleri değiştirir. Bu öznitelik yalnızca diğer öğelere (örneğin, Remove="@(Compile);@(Content)" ) başvurular içeren bir Remove öznitelikle birlikte belirtilirse geçerlidir. Öğeler'deki diğer ayrıntılar. |
MatchOnMetadataOptions |
İsteğe bağlı öznitelik. tarafından MatchOnMetadata kullanılan dize eşleştirme stratejisini belirtir. Olası değerler , CaseInsensitive veya PathLike şeklindedirCaseSensitive . Varsayılan değer şudur: CaseInsensitive . |
KeepDuplicates |
İsteğe bağlı öznitelik. Var olan bir öğenin tam bir kopyasıysa, bir öğenin hedef gruba eklenip eklenmeyeceğini belirtir. Kaynak ve hedef öğe aynı Include değere ama farklı meta veriye sahipse, öğesi olarak ayarlanmış false olsa KeepDuplicates bile eklenir. Daha fazla bilgi için bkz . Öğeler.Bu öznitelik yalnızca içindeki bir öğe ItemGroup Target için belirtilmişse geçerlidir. |
KeepMetadata |
İsteğe bağlı öznitelik. Hedef öğelere eklenecek kaynak öğelerin meta verileri. Yalnızca adları noktalı virgülle ayrılmış listede belirtilen meta veriler kaynak öğeden hedef öğeye aktarılır. Daha fazla bilgi için bkz . Öğeler. Bu öznitelik yalnızca içindeki bir öğe ItemGroup Target için belirtilmişse geçerlidir. |
RemoveMetadata |
İsteğe bağlı öznitelik. Kaynak öğelerin hedef öğelere aktarılmaması için meta veriler. Adları noktalı virgülle ayrılmış ad listesinde yer alan meta veriler dışında tüm meta veriler kaynak öğeden hedef öğeye aktarılır. Daha fazla bilgi için bkz . Öğeler. Bu öznitelik yalnızca içindeki bir öğe ItemGroup Target için belirtilmişse geçerlidir. |
Update |
İsteğe bağlı öznitelik. (Yalnızca Visual Studio 2017 veya sonraki sürümlerde .NET Core projelerinde kullanılabilir.) Bir öğenin meta verilerini değiştirmenizi sağlar; genellikle bir öğe grubu başlangıçta belirtildikten sonra (joker karakter gibi) belirli öğelerin varsayılan meta verilerini geçersiz kılmak için kullanılır. Bu öznitelik yalnızca içinde olmayan Target bir ItemGroup öğe için belirtilmişse geçerlidir. |
Alt öğeleri
Öğe | Açıklama |
---|---|
ItemMetadata | Öğe meta veri değerini içeren kullanıcı tanımlı öğe meta veri anahtarı. Bir öğede sıfır veya daha fazla ItemMetadata öğe olabilir. |
Üst öğeler
Öğe | Açıklama |
---|---|
Itemgroup | Öğeler için gruplandırma öğesi. |
Açıklamalar
Item
öğeleri, derleme sistemine girişleri tanımlar ve kullanıcı tanımlı koleksiyon adlarına göre öğe koleksiyonları halinde gruplandırılır. Bu öğe koleksiyonları, derleme işleminin adımlarını gerçekleştirmek için koleksiyonlardaki tek tek öğeleri kullanan görevler için parametre olarak kullanılabilir. Daha fazla bilgi için bkz . Öğeler.
@(<myType) gösterimini kullanmak, myType>> türünde <bir öğe koleksiyonunun noktalı virgülle ayrılmış dize listesine genişletilmesine ve bir parametreye geçirilmesine olanak tanır. Parametre türündeyse string
, parametrenin değeri noktalı virgülle ayrılmış öğe listesidir. Parametre bir dize dizisi ()string[]
ise, her öğe noktalı virgüllerin konumuna göre diziye eklenir. Görev parametresi türündeyse ITaskItem[]
değer, öğe koleksiyonunun içeriği ve ekli meta verilerdir. Noktalı virgül dışında bir karakter kullanarak her öğeyi sınırlandırmak için @(<myType>, '<ayırıcı>') söz dizimini kullanın.
MSBuild altyapısı ve ?
/*
**/*.cs gibi özyinelemeli joker karakterler gibi joker karakterleri değerlendirebilir. Daha fazla bilgi için bkz . Öğeler.
Örnekler
Aşağıdaki kod örneği, türünde CSFile
iki öğenin nasıl bildir yapılacağını gösterir. bildirilen ikinci öğe olarak ayarlanmış HelloWorld
meta verileri MyMetadata
içerir.
<ItemGroup>
<CSFile Include="engine.cs; form.cs" />
<CSFile Include="main.cs" >
<MyMetadata>HelloWorld</MyMetadata>
</CSFile>
</ItemGroup>
Aşağıdaki kod örneği, glob aracılığıyla eklenen somefile.cs adlı bir dosyadaki meta verileri değiştirmek için özniteliğinin nasıl kullanılacağını Update
gösterir. (Yalnızca Visual Studio 2017 veya sonraki sürümlerde .NET Core projelerinde kullanılabilir.)
<ItemGroup>
<Compile Update="somefile.cs"> // or Update="*.designer.cs"
<MetadataKey>MetadataValue</MetadataKey>
</Compile>
</ItemGroup>