Dela via


Använda MSBuild

MSBuild tillhandahåller ett väldefinierat, utökningsbart XML-format för att skapa projektfiler som fullständigt beskriver projektobjekt som ska skapas, bygga uppgifter och skapa konfigurationer.

Allmänna överväganden för MSBuild

MSBuild-projektfiler, till exempel Visual C# .csproj- och Visual Basic .vbproj-filer, innehåller data som används vid byggtiden, men som också kan innehålla data som används vid designtillfället. Byggtidsdata lagras med hjälp av MSBuild-primitiver, inklusive objektelement (MSBuild) och egenskapselement (MSBuild). Designtidsdata, som är data som är specifika för projekttypen och eventuella relaterade projektundertyper, lagras i friforms-XML som är reserverad för den.

MSBuild har inte inbyggt stöd för konfigurationsobjekt, men tillhandahåller villkorsattribut för att ange konfigurationsspecifika data. Till exempel:

<OutputDir Condition="'$(Configuration)'=="release'">Bin\MyReleaseConfig</OutputDir>

Mer information om villkorsstyrda attribut finns i Villkorsstyrda konstruktioner.

Utöka MSBuild för din projekttyp

MSBuild-gränssnitt och API:er kan komma att ändras i framtida versioner av Visual Studio. Därför är det klokt att använda MPF-klasserna (Managed Package Framework) eftersom de ger avskärmning från ändringar.

Managed Package Framework for Projects (MPFProj) innehåller hjälpklasser för att skapa och hantera nya projektsystem. Du hittar källkods- och kompileringsinstruktionerna på MPF for Projects – Visual Studio 2013.

De projektspecifika MPF-klasserna är följande:

Class Implementation
Microsoft.VisualStudio.Package.ProjectNode IVsProject3

IVsCfgProvider2

IPersistFileFormat

IVsSolutionEvents
Microsoft.VisualStudio.Package.ProjectFactory IVsProjectFactory
Microsoft.VisualStudio.Package.HierarchyNode IVsHierarchy
Microsoft.VisualStudio.Package.ProjectConfig IVsCfg

IVsProjectCfg

IVsBuildableProjectCfg

IVsDebuggableProjectCfg
Microsoft.VisualStudio.Package.SettingsPage IPropertyPageSite

Microsoft.VisualStudio.Package.ProjectElement klassen är en omslutning för MSBuild-objekt.

Enskilda filgeneratorer jämfört med MSBuild-tasks

Enskilda filgeneratorer är endast tillgängliga vid designtid, men MSBuild-uppgifter kan användas vid designtid och byggtid. Använd därför MSBuild-uppgifter för att transformera och generera kod för maximal flexibilitet. Mer information finns i Anpassade verktyg.