Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Proje dosyasında, tüm dosyaları bir dizine veya iç içe yerleştirilmiş dizin kümesine derleme girişi olarak eklemek için joker karakterler kullanabilirsiniz. Ancak, dizinde veya iç içe dizin kümesinde, oluşturma süreci için girdi olarak dahil etmek istemediğiniz bir dosya veya bir dizin olabilir. Bu dosyayı veya dizini giriş listesinden açıkça dışlayabilirsiniz. Bir projede yalnızca belirli koşullar altında eklemek istediğiniz bir dosya da olabilir. Bir dosyanın derlemeye dahil olduğu koşulları açıkça bildirebilirsiniz.
Uyarı
Bu makalede açıklanan teknikler F# ve C++ için geçerli değildir. Bu proje sistemleri kaynak dosyaları kendileri yönetir.
Visual Studio kullanarak dosyayı dışlama
Visual Studio kullanıyorsanız Çözüm Gezgini'nde dosyayı seçin, Özellikler penceresini görüntüleyin ( Alt+Enter tuşuna basın) ve Derleme Eylemi'niYok olarak ayarlayın.
Bu, MSBuild proje dosyasında aşağıdaki değişikliklere neden olur:
<ItemGroup>
<Compile Remove="ClassToExclude.cs" />
</ItemGroup>
<ItemGroup>
<None Include="ClassToExclude.cs" />
</ItemGroup>
Bu, birkaç dosya için iyi çalışır, ancak daha fazla dosya veya belirli bir desenle eşleşen dosyalar için ölçeklenmez. .NET projelerinde, msbuild kullanarak dosyaları ve dizinleri glob olarak da adlandırılan bir joker karakter ifadesi kullanarak dışlayabilirsiniz.
.NET projelerindeki dosyaları veya dizinleri dışlama
Öğe listeleri bir derlemenin giriş dosyalarıdır. .NET SDK projeleri gibi çoğu projede, standart içeri aktarmalar tarafından önceden tanımlanmış olan farklı öğe türlerinde (örneğin, Compile
kaynak dosyalar, Content
belirli statik dosyalar vb.) önceden tanımlanmış öğe listeleri vardır. Bu öğelerin listesi Common MSBuild proje öğeleri bölümünde bulunabilir. Proje kodunuzda, bunlar ilgili her şeyi içerecek şekilde önceden tanımlanmıştır; örneğin, Compile
bir C# projesinde uzantıya .cs
sahip tüm dosyaları içerir.
Dosyaları dışlamak için öğedeki özniteliğini Remove
kullanabilirsiniz.
<ItemGroup>
<Compile Remove="ClassToExclude.cs" />
</ItemGroup>
Birden çok ayrı dosya veya çeşitli glob desenleri belirtebilirsiniz:
<ItemGroup>
<Compile Remove="Contoso*.cs" /> <!-- Wildcard on filename -->
<Compile Remove="File1.cs;File2.cs" /> <!-- List of files with separator -->
<Compile Remove="Contoso/**/*.cs" /> <!-- All .cs files in a directory subtree -->
</ItemGroup>
Desteklenen desenlerin listesi için bkz . Desen biçimleri.
MSBuild diline dosya veya dizin ekleme ve dışlama
Ham MSBuild dilinde (yani standart içeri aktarmalardan veya bir SDK'ya başvuru olmadan), eklemek istediğiniz öğeler ayrı olarak veya özniteliği kullanılarak Include
bir grup olarak bildirilir. Örneğin:
<CSFile Include="Form1.cs"/>
<CSFile Include ="File1.cs;File2.cs"/>
<CSFile Include="*.cs"/>
<JPGFile Include="Images\**\*.jpg"/>
Bir dizindeki veya iç içe dizin kümesindeki tüm dosyaları bir derlemenin girdileri olarak eklemek için joker karakterler kullanıyorsanız, dizinde bir veya daha fazla dosya veya eklemek istemediğiniz iç içe yerleştirilmiş dizin kümesinde bir dizin olabilir. Öğeyi öğe listesinden dışlamak için özniteliğini Exclude
kullanın.
Exclude
aslında bir öğe işlemi değildir; kendi başına kullanılamaz, ancak yalnızca için Include
değiştirici olarak kullanılır.
Tüm .cs
veya .vb
dosyalarını Form2
hariç tutarak dahil etmek için
Aşağıdakilerden
Include
veExclude
özniteliklerinden birini kullanın:<CSFile Include="*.cs" Exclude="Form2.cs"/>
veya
<VBFile Include="*.vb" Exclude="Form2.vb"/>
.cs
ve .vb
hariç tüm Form2
veya Form3
dosyalarını dahil etmek için
Aşağıdakilerden
Include
veExclude
özniteliklerinden birini kullanın:<CSFile Include="*.cs" Exclude="Form2.cs;Form3.cs"/>
veya
<VBFile Include="*.vb" Exclude="Form2.vb;Form3.vb"/>
.jpg
dizininin alt dizinlerindeki ve Images
dizini dışındaki tüm Version2
dosyalarını dahil etmek için
Aşağıdaki
Include
veExclude
özniteliklerini kullanın:<JPGFile Include="Images\**\*.jpg" Exclude = "Images\**\Version2\*.jpg"/>
Uyarı
Her iki öznitelik için de yolu belirtmeniz gerekir. Özniteliğinde
Include
dosya konumlarını belirtmek için mutlak bir yol kullanırsanız, özniteliğindeExclude
mutlak bir yol da kullanmanız gerekir; öznitelikteInclude
göreli yol kullanıyorsanız, öznitelikteExclude
göreli bir yol da kullanmanız gerekir.
Dışla ve Kaldır
Kendi öğe listelerinizi tanımlıyorsanız mümkün olduğunca kullanmanız Exclude
gerekir.
Exclude
ve Include
aynı bildirimde kullanıldığında, dışlanacak öğelerin işlenmesine gerek kalmadığından bir performans avantajı vardır.
Remove
öğesine, önceden tanımlanmış bir öğe listesine sahip olduğunuzda, standart öğe listeleri olan Compile
ve Content
durumunda olduğu gibi başvurun. Bu durumda Exclude
desteklenmez.
Uyarı
Eğer bunu destekleyen bir SDK kullanıyorsanız, $(OverrideDefaultCompileItems)
özelliğini true
olarak ayarlayabilir ve, isteğe bağlı olarak Compile
ile birlikte, Include
kullanarak kendi Exclude
öğenizi tanımlayabilirsiniz.
Bir derlemenin girişlerinden dosya veya dizin dışlamak için koşulları kullanma
Örneğin, Bir Hata Ayıklama derlemesine dahil etmek istediğiniz ancak Yayın derlemesine dahil etmek istemediğiniz öğeler varsa, öznitelik Condition
'yi kullanarak öğenin dahil edileceği koşulları belirtebilirsiniz.
Yalnızca Sürüm derlemelerine dahil edilecek dosya Formula.vb
Aşağıdakine benzer bir
Condition
öznitelik kullanın:<Compile Include="Formula.vb" Condition=" '$(Configuration)' == 'Release' " />
Örnek
Aşağıdaki kod örneği, Form2.cs dışında dizindeki tüm .cs dosyalarıyla bir proje oluşturur.
<Project DefaultTargets="Compile"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<PropertyGroup>
<builtdir>built</builtdir>
</PropertyGroup>
<ItemGroup>
<CSFile Include="*.cs" Exclude="Form2.cs"/>
<Reference Include="System.dll"/>
<Reference Include="System.Data.dll"/>
<Reference Include="System.Drawing.dll"/>
<Reference Include="System.Windows.Forms.dll"/>
<Reference Include="System.XML.dll"/>
</ItemGroup>
<Target Name="PreBuild">
<Exec Command="if not exist $(builtdir) md $(builtdir)"/>
</Target>
<Target Name="Compile" DependsOnTargets="PreBuild">
<Csc Sources="@(CSFile)"
References="@(Reference)"
OutputAssembly="$(builtdir)\$(MSBuildProjectName).exe"
TargetType="exe" />
</Target>
</Project>