Nasıl Yapılır: MSBuild Projelerine Özel Derleme Adımı Ekleme

Özel derleme adımı, derlemede kullanıcı tanımlı bir adımdır. Özel derleme adımı, standart derleme veya bağlantı aracı adımı gibi diğer herhangi bir komut aracı adımı gibi davranır.

Proje dosyasında (.vcxproj) özel bir derleme adımı belirtin. Adım yürütülecek bir komut satırı, ek giriş veya çıkış dosyaları ve görüntülenecek bir ileti belirtebilir. MSBuild, çıkış dosyalarınızın giriş dosyalarınızla ilgili olarak güncel olmadığını belirlerse, iletiyi görüntüler ve komutu yürütür.

Derleme hedefleri dizisinde özel derleme adımının konumunu belirtmek için proje dosyasındaki CustomBuildAfterTargets ve CustomBuildBeforeTargets XML öğelerinin birini veya her ikisini kullanın. Örneğin, özel derleme adımının bağlantı aracı hedefinde ve bildirim aracı hedefinde önce çalıştırılacağını belirtebilirsiniz. Kullanılabilir hedeflerin gerçek kümesi, kendi derlemenize bağlıdır.

CustomBuildBeforeTargets Belirli bir hedef çalıştırmadan önce özel derleme adımını yürütecek öğeyi, CustomBuildAfterTargets belirli bir hedef çalıştırıldıktan sonra adımı yürütecek öğeyi veya iki bitişik hedef arasındaki adımı yürütmek için her iki öğeyi belirtin. Hiçbir öğe belirtilmezse, özel derleme aracınız bağlantı hedefinin ardından gelen varsayılan konumunda yürütülür.

Özel derleme adımları ve özel derleme araçları ve CustomBuildAfterTargets XML öğelerinde CustomBuildBeforeTargets belirtilen bilgileri paylaşır. Bu nedenle, proje dosyanızda bu hedefleri yalnızca bir kez belirtin.

Özel derleme adımı tarafından yürütülenleri tanımlamak için

  1. Proje dosyasına bir özellik grubu ekleyin. Bu özellik grubunda, aşağıdaki örnekte gösterildiği gibi komutunu, girdilerini ve çıkışlarını ve bir iletiyi belirtin. Bu örnek, İzlenecek Yol: C++ Projesi Oluşturmak için MSBuild Kullanma bölümünde oluşturduğunuz main.cpp dosyasından bir .cab dosyası oluşturur.

    <ItemDefinitionGroup>
      <CustomBuildStep>
        <Command>makecab.exe $(ProjectDir)main.cpp $(TargetName).cab</Command>
        <Outputs>$(TargetName).cab</Outputs>
        <Inputs>$(ProjectDir)main.cpp</Inputs>
      </CustomBuildStep>
    </ItemDefinitionGroup>
    

Derlemenin neresinde özel derleme adımının yürütüleceğini tanımlamak için

  1. Proje dosyasına aşağıdaki özellik grubunu ekleyin. Her iki hedefi de belirtebilir veya özel adımın yalnızca belirli bir hedef öncesinde veya sonrasında yürütülmesini istiyorsanız birini atlayabilirsiniz. Bu örnek, MSBuild'e derleme adımından sonra ancak bağlantı adımından önce özel adımı gerçekleştirmesini söyler.

    <PropertyGroup>
      <CustomBuildAfterTargets>ClCompile</CustomBuildAfterTargets>
      <CustomBuildBeforeTargets>Link</CustomBuildBeforeTargets>
    </PropertyGroup>
    

Ayrıca bkz.

İzlenecek yol: C++ Projesi Oluşturmak için MSBuild Kullanma
Nasıl Yapılır: MSBuild Projelerinde Derleme Olaylarını Kullanma
Nasıl Yapılır: MSBuild Projelerine Özel Derleme Araçları Ekleme