Nasıl yapılır: MSBuild projelerine özel derleme araçları ekleme

Özel derleme aracı, belirli bir dosyayla ilişkilendirilmiş kullanıcı tanımlı bir komut satırı aracıdır.

Belirli bir dosya için, proje dosyasında (.vcxproj) yürütülecek komut satırında, diğer giriş veya çıkış dosyalarında ve görüntülenecek bir iletide belirtin. MSBuild, çıkış dosyalarınızın giriş dosyalarınıza göre güncel olmadığını belirlerse, iletiyi görüntüler ve komut satırı aracını yürütür.

Özel derleme araçlarını ve özel derleme adımlarını belirtme

Özel derleme aracının ne zaman yürütüleceğini belirtmek için proje dosyasındaki CustomBuildBeforeTargets ve CustomBuildAfterTargets XML öğelerinin birini veya her ikisini kullanın. Örneğin, özel derleme aracının MIDL derleyicisinin ardından ve C/C++ derleyicisi öncesinde çalıştırılacağını belirtebilirsiniz. CustomBuildBeforeTargets Belirli bir hedef çalışmadan önce aracın yürütülecek öğesini belirtin. CustomBuildAfterTargets Belirli bir hedef çalıştırıldıktan sonra aracı yürütmek için öğesini kullanın. Aracı iki hedefin yürütülmesi arasında çalıştırmak için her iki öğeyi de kullanın. Herhangi bir öğe belirtilmezse, özel derleme aracınız MIDL hedeflerinden önceki 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 hedefleri proje dosyanızda bir kez belirtin.

Özel derleme aracı eklemek için

  1. Proje dosyasına bir öğe grubu ekleyin ve her giriş dosyası için bir öğe ekleyin. Burada gösterildiği gibi komutu ve girdilerini, çıkışlarını ve bir iletiyi öğe meta verileri olarak belirtin. Bu örnekte projenizle aynı dizinde bir "faq.txt" dosyası bulunduğu varsayılır. Özel derleme adımı bunu çıkış dizinine kopyalar.

    <ItemGroup>
      <CustomBuild Include="faq.txt">
        <Message>Copying readme...</Message>
        <Command>copy %(Identity) $(OutDir)%(Identity)</Command>
        <Outputs>$(OutDir)%(Identity)</Outputs>
      </CustomBuild>
    </ItemGroup>
    

Derlemenin neresinde özel derleme araçlarının yürütüleceği yeri tanımlamak için

  1. Proje dosyasına aşağıdaki özellik grubunu ekleyin. Hedeflerden en az birini belirtmeniz gerekir. Yalnızca derleme adımınızın belirli bir hedef öncesinde (veya sonrasında) yürütülmesini istiyorsanız diğerini atlayabilirsiniz. Bu örnek, derlemeden sonra ancak bağlamadan önce özel adımı gerçekleştirir.

    <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 adımı ekleme
MSBuild komutları ve özellikleri için yaygın makrolar
MSBuild iyi bilinen öğe meta verileri