Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ett anpassat byggverktyg ger byggsystemet den information som behövs för att skapa specifika indatafiler. Ett anpassat byggverktyg anger ett kommando som ska köras, en lista över indatafiler, en lista över utdatafiler som genereras av kommandot och en valfri beskrivning av verktyget.
Allmän information om anpassade byggverktyg och anpassade byggsteg finns i Förstå anpassade byggsteg och bygghändelser.
Så här anger du ett anpassat byggverktyg
Öppna dialogrutan egenskapssidor för projektet. Mer information finns i Ange C++-kompilator- och byggegenskaper i Visual Studio.
Välj Konfigurationsegenskaper för att aktivera rutan Konfiguration . I rutan Konfiguration väljer du den konfiguration som du vill ange ett anpassat byggverktyg för.
I Solution Explorer väljer du indatafilen för det anpassade byggverktyget.
Om mappen Custom Build Tool inte visas associeras filnamnstillägget för den valda filen med ett standardverktyg. Standardverktyget för .c- och .cpp-filer är till exempel kompilatorn. Om du vill åsidosätta en standardinställning för verktyg går du till noden Konfigurationsegenskaper i mappen Allmänt i egenskapen Objekttyp och väljer Anpassat byggverktyg. Välj Använd och noden Anpassat byggverktyg visas.
I noden Anpassat byggverktyg i mappen Allmänt anger du de egenskaper som är associerade med det anpassade byggverktyget:
I Ytterligare beroenden anger du eventuella ytterligare filer utöver den som det anpassade byggverktyget definieras för (filen som är associerad med det anpassade byggverktyget betraktas implicit som indata till verktyget). Att ha ytterligare indatafiler är inte ett krav för ett anpassat byggverktyg. Om du har fler än en ytterligare indata separerar du dem med semikolon.
Om datumet för en ytterligare beroendefil är senare än indatafilen körs det anpassade byggverktyget. Om alla ytterligare beroendefiler är äldre än indatafilen och indatafilen är äldre än egenskapen Outputs körs inte det anpassade byggverktyget.
Anta till exempel att du har ett anpassat byggverktyg som tar MyInput.x som indata och genererar MyInput.cpp, och att MyInput.x innehåller en huvudfil, MyHeader.h. Du kan ange MyHeader.h som ett indataberoende till MyInput.x, och byggsystemet skapar MyInput.cpp när det är inaktuellt med avseende på MyInput.x eller MyHeader.h.
Indataberoenden kan också se till att dina anpassade byggverktyg körs i den ordning du behöver dem. I föregående exempel antar vi att MyHeader.h faktiskt är utdata från ett anpassat byggverktyg. Eftersom MyHeader.h är ett beroende av MyInput.x skapar byggsystemet först Myheader.h innan det anpassade byggverktyget körs på MyInput.x.
I Kommandorad anger du ett kommando som om du angav det i kommandotolken. Ange ett giltigt kommando eller en batchfil och alla nödvändiga indata- eller utdatafiler. Ange anropsbatchkommandot före namnet på en batchfil för att garantera att alla efterföljande kommandon körs.
Flera indata- och utdatafiler kan anges symboliskt med MSBuild-makron. Information om hur du anger platsen för filer eller namnen på filuppsättningar finns i Vanliga makron för byggkommandon och egenskaper.
Eftersom tecknet "%" är reserverat av MSBuild ersätter du varje % escape-tecken med %25 hexadecimal escape-sekvens om du anger en miljövariabel. Ersätt till exempel %WINDIR% med %25WINDIR%25. MSBuild ersätter varje %25 sekvens med % tecknet innan det kommer åt miljövariabeln.
I Beskrivning anger du ett beskrivande meddelande om det här anpassade byggverktyget. Meddelandet skrivs ut i utdatafönstret när byggsystemet bearbetar det här verktyget.
I Utdata anger du namnet på utdatafilen. Det här är en obligatorisk post. Utan ett värde för detta attribut körs inte det anpassade byggverktyget. Om ett anpassat byggverktyg har fler än en utdata, ska du separera filnamnen med ett semikolon.
Namnet på utdatafilen ska vara samma som det anges i egenskapen Kommandorad . Projektets byggsystem söker efter filen och kontrollerar dess datum. Om utdatafilen är äldre än indatafilen eller om utdatafilen inte hittas körs det anpassade byggverktyget. Om alla ytterligare beroendefiler är äldre än indatafilen och indatafilen är äldre än den fil som anges i egenskapen Utdata , körs inte det anpassade byggverktyget.
Om du vill att byggsystemet ska fungera på en utdatafil som genereras av det anpassade byggverktyget måste du lägga till det manuellt i projektet. Det anpassade byggverktyget uppdaterar filen under bygget.
Exempel
Anta att du vill inkludera en fil med namnet parser.l i projektet. Du har en lexikal analysator, lexer.exe, i din körbara sökväg. Du vill använda den för att bearbeta parser.l för att skapa en .c-fil som har samma basnamn (parser.c).
Lägg först till parser.l och parser.c i projektet. Om filerna ännu inte finns lägger du till en referens till filerna. Skapa ett anpassat byggverktyg för parser.l och ange följande i egenskapen Kommandon :
lexer %(FullPath) .%(Filnamn).c
Det här kommandot kör den lexikala analysatorn på parser.l och matar ut parser.c till projektkatalogen.
I egenskapen Outputs anger du följande:
.%(Filnamn).c
När du skapar projektet jämför byggsystemet tidsstämplarna för parser.l och parser.c. Om parser.l är nyare, eller om parser.c inte finns, kör byggsystemet värdet för egenskapen Kommandorad för att hålla parser.c uppdaterat. Eftersom parser.c också lades till i projektet kompilerar byggsystemet sedan parser.c.
Se även
Vanliga makron för att skapa kommandon och egenskaper
Felsöka build-anpassningar