Aracılığıyla paylaş


MSBuild hedefleri

Hedefleri belirli bir sırada görevleri gruplamak ve yapı işlemi daha küçük birimlere çarpanlarına olanak sağlar. Örneğin, bir hedef başka bir proje için girişleri derler ve onları boş dizinine yerleştirir yapı için hazırlamak üzere çıktı klasördeki tüm dosyaları silebilirsiniz. Görevler hakkında daha fazla bilgi için bkz: MSBuild görevleri.

Proje dosyasında hedefleri bildirmek

Hedefler proje dosyasıyla birlikte bildirilir hedef öğesi. Örneğin, aşağıdaki xml adlı derleme öğesi türü ile Csc görev sonra çağırır yapısı, hedef oluşturur.

<Target Name="Construct">
    <Csc Sources="@(Compile)" />
</Target>

MSBuild özellikleri gibi hedefleri yeniden tanımlanabilir. Örnek:

<Target Name="AfterBuild" >
    <Message Text="First occurrence" />
</Target>
<Target Name="AfterBuild" >
    <Message Text="Second occurrence" />
</Target>

AfterBuild yürütür, yalnızca "İkinci oluşumu" görüntüler.

Hedef Yapı siparişi

Giriş bir hedef için başka bir hedef çıktı bağımlıysa hedefleri sipariş edilebilir. Hedeflerin hangi sırayı belirtmek için çeşitli yollar vardır.

  • İlk hedefleri

  • Varsayılan hedefler

  • İlk hedef

  • Hedef Bağımlılık

  • BeforeTargetsve AfterTargets (MSBuild 4.0)

Bir sonraki hedef yapı ona bağlı olsa bile hedef hiçbir zaman bir tek yapı sırasında iki kez çalışır. Hedef çalışan bir kez katılımı yapı tamamlanır.

Yapı sipariş ayrıntıları ve hedef hakkında daha fazla bilgi için bkz: Hedef oluþturulma sýrasý.

Hedef toplu işleme

Hedef öğe olabilir bir Outputs meta veri formu % (meta veri) belirten özniteliği. Bu durumda, MSBuild gruplandırma veya "meta veri değeri olan öğeleri toplu işleme" hedef her benzersiz meta veri değeri için bir kez çalışır. Örnek:

<ItemGroup>
    <Reference Include="System.Core">
      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    </Reference>
    <Reference Include="System.Xml.Linq">
      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    </Reference>
    <Reference Include="Microsoft.CSharp">
      <RequiredTargetFramework>4.0</RequiredTargetFramework>
    </Reference>
</ItemGroup>
<Target Name="AfterBuild"
    Outputs="%(Reference.RequiredTargetFramework)">
    <Message Text="Reference:
      @(Reference->'%(RequiredTargetFramework)')" />
</Target>

Başvuru maddelerinin RequiredTargetFramework meta verileri tarafından işlenir. Hedef çıktı aşağıdaki gibi görünür:

Reference: 3.5;3.5
Reference: 4.0

Toplu işleme hedef gerçek yapılarında nadiren kullanılır. Toplu Görev daha yaygındır. Daha fazla bilgi için bkz. MSBuild toplu iş dosyası.

Artımlı derlemeler

Artımlı derlemeler hedefleri ile ilgili giriş dosyalarına göre güncel durumda çıktı dosyaları yürütülmez olacak şekilde en iyi duruma getirilmiş yapılar var. Hedef öğe hem de sahip Inputs ve Outputs öznitelikleri, hangi hedef öğeler gösteren giriş olarak bekler ve hangi onu oluşturan çıktı öğeler.

Tüm çıktı öğeleri güncel, MSBuild yapı hızını önemli ölçüde artırır hedef atlar. Bu hedefin artımlı bir yapı olarak adlandırılır. MSBuild yalnızca bazı dosyaları güncel, güncel öğe olmadan hedef yürütür. Bu kısmi bir Artımlı derleme hedef olarak adlandırılır. Daha fazla bilgi için bkz. Artımlı oluşturur.

Ayrıca bkz.

Görevler

Nasıl yapılır: aynı hedefte birden çok proje dosyalarında kullanma

Diğer Kaynaklar

MSBuild kavramları