korzystanie z programu MSBuild
Program MSBuild udostępnia dobrze zdefiniowany, rozszerzalny format XML do tworzenia plików projektu, które w pełni opisują elementy projektu do skompilowania, zadań kompilacji i konfiguracji kompilacji.
Ogólne zagadnienia dotyczące programu MSBuild
Pliki projektów MSBuild, na przykład pliki .csproj i Visual Basic .vbproj, zawierają dane używane w czasie kompilacji, ale także mogą zawierać dane używane w czasie projektowania. Dane czasu kompilacji są przechowywane przy użyciu elementów pierwotnych MSBuild, w tym elementu item (MSBuild) i elementu właściwości (MSBuild). Dane dotyczące czasu projektowania, które są danymi specyficznymi dla typu projektu i powiązanymi podtypami projektu, są przechowywane w postaci bezpłatnej zarezerwowanej dla niego xml.
Program MSBuild nie ma natywnej obsługi obiektów konfiguracji, ale udostępnia atrybuty warunkowe do określania danych specyficznych dla konfiguracji. Na przykład:
<OutputDir Condition="'$(Configuration)'=="release'">Bin\MyReleaseConfig</OutputDir>
Aby uzyskać więcej informacji na temat atrybutów warunkowych, zobacz Konstrukcje warunkowe.
Rozszerzanie programu MSBuild dla typu projektu
Interfejsy i interfejsy API programu MSBuild mogą ulec zmianie w przyszłych wersjach programu Visual Studio. W związku z tym należy używać klas zarządzanej struktury pakietów (MPF), ponieważ zapewniają one osłonę przed zmianami.
Program Managed Package Framework for Projects (MPFProj) udostępnia klasy pomocnika do tworzenia nowego systemu projektu i zarządzania nim. Instrukcje dotyczące kodu źródłowego i kompilacji można znaleźć w temacie MPF for Projects — Visual Studio 2013.
Klasy MPF specyficzne dla projektu są następujące:
Klasa | Implementacja |
---|---|
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
klasa jest otoką elementów MSBuild.
Generatory pojedynczych plików a zadania programu MSBuild
Generatory pojedynczych plików są dostępne tylko w czasie projektowania, ale zadania programu MSBuild mogą być używane w czasie projektowania i czasie kompilacji. Aby zapewnić maksymalną elastyczność, użyj zadań PROGRAMU MSBuild do przekształcania i generowania kodu. Aby uzyskać więcej informacji, zobacz Narzędzia niestandardowe.