Uso di MSBuild
MSBuild fornisce un formato XML ben definito ed estendibile per la creazione di file di progetto che descrivono completamente gli elementi di progetto da compilare, compilare attività e configurazioni di compilazione.
Considerazioni generali su MSBuild
I file di progetto MSBuild, ad esempio, i file con estensione csproj e visual Basic con estensione vbproj di Visual C# contengono dati usati in fase di compilazione, ma possono anche contenere dati usati in fase di progettazione. I dati in fase di compilazione vengono archiviati usando primitive MSBuild, inclusi l'elemento Item (MSBuild) e l'elemento proprietà (MSBuild). I dati in fase di progettazione, che sono dati specifici del tipo di progetto e dei sottotipi di progetto correlati, vengono archiviati in formato libero XML riservato.
MSBuild non dispone del supporto nativo per gli oggetti di configurazione, ma fornisce attributi condizionali per specificare dati specifici della configurazione. Ad esempio:
<OutputDir Condition="'$(Configuration)'=="release'">Bin\MyReleaseConfig</OutputDir>
Per altre informazioni sugli attributi condizionali, vedere Costrutti condizionali.
Estensione di MSBuild per il tipo di progetto
Le interfacce e le API di MSBuild sono soggette a modifiche nelle versioni future di Visual Studio. Pertanto, è prudente usare le classi MPF (Managed Package Framework) perché forniscono schermatura dalle modifiche.
Managed Package Framework for Projects (MPFProj) fornisce classi helper per la creazione e la gestione di un nuovo sistema di progetto. È possibile trovare le istruzioni per il codice sorgente e la compilazione in MPF per progetti - Visual Studio 2013.
Le classi MPF specifiche del progetto sono le seguenti:
Classe | Implementazione |
---|---|
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
la classe è un wrapper per gli elementi di MSBuild.
Generatori di file singoli e attività di MSBuild
I generatori di file singoli sono accessibili solo in fase di progettazione, ma le attività MSBuild possono essere usate in fase di progettazione e in fase di compilazione. Per garantire la massima flessibilità, usare quindi le attività MSBuild per trasformare e generare codice. Per altre informazioni, vedere Strumenti personalizzati.