Dela via


Gör så här: Lägga till anpassade byggverktyg i MSBuild-projekt

Ett anpassat byggverktyg är ett användardefinierat kommandoradsverktyg som är associerat med en viss fil.

För en viss fil anger du i projektfilen (.vcxproj) kommandoraden som ska köras, andra in- eller utdatafiler och ett meddelande som ska visas. Om MSBuild fastställer att utdatafilerna är inaktuella i förhållande till dina indatafiler visas meddelandet och kommandoradsverktyget körs.

Ange anpassade byggverktyg och anpassade byggsteg

Om du vill ange när det anpassade byggverktyget körs använder du ett eller båda xml-elementen CustomBuildBeforeTargetsCustomBuildAfterTargets i projektfilen. Du kan till exempel ange att ditt anpassade byggverktyg ska köras efter MIDL-kompilatorn och före C/C++-kompilatorn. Ange elementet CustomBuildBeforeTargets för att verktyget ska köras innan ett specifikt mål körs. Använd -elementet CustomBuildAfterTargets för att köra verktyget efter att ett visst mål har körts. Använd verktyget mellan utförandet av två mål genom att använda båda elementen. Om inget av elementen anges körs ditt anpassade byggverktyg på standardplatsen, som ligger före MIDL-målet .

Anpassade byggsteg och anpassade byggverktyg delar den information som anges i XML-elementen CustomBuildBeforeTargets och CustomBuildAfterTargets . Ange dessa mål en gång i projektfilen.

Så här lägger du till ett anpassat byggverktyg

  1. Lägg till en objektgrupp i projektfilen och lägg till ett objekt för varje indatafil. Ange kommandot och dess indata, utdata och ett meddelande som objektmetadata, som visas här. I det här exemplet förutsätts att filen "faq.txt" finns i samma katalog som projektet. Det anpassade byggsteget kopierar det till utdatakatalogen.

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

Så här definierar du var i bygget de anpassade byggverktygen ska köras

  1. Lägg till följande egenskapsgrupp i projektfilen. Du måste ange minst ett av målen. Du kan utelämna det andra om du bara vill att byggsteget ska köras före (eller efter) ett visst mål. Det här exemplet utför det anpassade steget efter kompileringen men innan du länkar.

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

Se även

Genomgång: Använda MSBuild för att skapa ett C++-projekt
Anvisningar: Använda bygghändelser i MSBuild-projekt
Anvisningar: Lägga till ett anpassat byggsteg i MSBuild-projekt
Vanliga makron för MSBuild-kommandon och egenskaper
MSBuild välkända objektmetadata