Udostępnij za pośrednictwem


VCBuild a MSBuild: zmiany systemu kompilacji w programie Visual Studio 2010

System MSBuild dla projektów C++ został wprowadzony w programie Visual Studio 2010. W programie Visual Studio 2008 i wcześniejszych wersjach użyto systemu VCBuild. Niektóre typy plików i pojęcia, które zależą od vcBuild, nie istnieją lub są reprezentowane inaczej w programie MSBuild. W tym dokumencie omówiono różnice w bieżącym systemie kompilacji. Aby przekonwertować projekt programu Visual Studio 2008 na program MSBuild, należy użyć programu Visual Studio 2010. Po przekonwertowaniu projektu należy użyć najnowszej wersji programu Visual Studio do uaktualnienia do bieżącego zestawu narzędzi IDE i kompilatora. Aby uzyskać więcej informacji, w tym sposób uzyskiwania programu Visual Studio 2010, zobacz Instrukcje dotyczące programu Visual Studio 2008.

W poniższych sekcjach podsumowano zmiany z VCBuild do MSBuild. Jeśli projekt VCBuild ma niestandardowe reguły kompilacji lub makra, które nie są rozpoznawane przez program MSBuild, zobacz Visual Studio Projects — C++ (Projekty programu Visual Studio — C++ ), aby dowiedzieć się, jak przetłumaczyć te instrukcje na system MSBuild. Początkowa konwersja z VCBuild do MSBuild jest tylko krokiem pośrednim. Nie jest konieczne całkowite poprawienie pliku projektu ani pobranie programu do kompilowania bez błędów. Używasz programu Visual Studio 2010 tylko do konwertowania projektu na format MSBuild, aby umożliwić działanie projektu w najnowszej wersji programu Visual Studio.

Plik vcproj jest teraz .vcxproj

Pliki projektu nie używają już rozszerzenia nazwy pliku vcproj. Program Visual Studio 2010 automatycznie konwertuje pliki projektu utworzone we wcześniejszej wersji programu Visual C++ na format MSBuild, który używa rozszerzenia .vcxproj dla plików projektu.

Plik vsprops jest teraz .props

W programie Visual Studio 2008 i starszych arkusz właściwości projektu jest plikiem opartym na formacie XML, który ma rozszerzenie nazwy pliku vsprops. Arkusz właściwości projektu umożliwia określenie przełączników dla narzędzi kompilacji, takich jak kompilator lub konsolidator, i tworzenie makr zdefiniowanych przez użytkownika. W programie MSBuild rozszerzenie nazwy pliku dla arkusza właściwości projektu to .props.

Niestandardowe reguły kompilacji i pliki reguł

W programie Visual Studio 2008 i starszych plik reguły jest plikiem opartym na formacie XML, który ma rozszerzenie nazwy pliku reguł. Plik reguły umożliwia definiowanie niestandardowych reguł kompilacji i dołączanie ich do procesu kompilacji projektu visual Studio C++. Niestandardowa reguła kompilacji, która może być skojarzona z co najmniej jednym rozszerzeniem nazwy pliku, umożliwia przekazywanie plików wejściowych do narzędzia, które tworzy jeden lub więcej plików wyjściowych.

W systemie MSBuild niestandardowe reguły kompilacji są reprezentowane przez trzy typy plików, .xml, .props i .targets, zamiast pliku reguł. Gdy plik reguł utworzony przy użyciu wcześniejszej wersji programu Visual C++ jest migrowany do programu Visual Studio 2010, równoważne pliki .xml, props i .targets są tworzone i przechowywane w projekcie wraz z oryginalnym plikiem reguł.

Ważne

W programie Visual Studio 2010 środowisko IDE nie obsługuje tworzenia nowych reguł. Z tego powodu najprostszym sposobem użycia pliku reguły z projektu utworzonego przy użyciu wcześniejszej wersji programu Visual C++ jest przeprowadzenie migracji projektu do programu Visual Studio 2010.

Makra dziedziczenia

W programie Visual Studio 2008 i starszych makra $(Dziedzicz) określa kolejność, w której dziedziczone właściwości są wyświetlane w wierszu polecenia, który składa się z systemu kompilacji projektu. Makro $(NoInherit) powoduje ignorowanie wszelkich wystąpień $(Inherit) i powoduje dziedziczenie wszelkich właściwości, które w przeciwnym razie zostaną odziedziczone, a nie dziedziczone. Na przykład domyślnie makro $(Dziedzicz) powoduje, że pliki określone za pomocą /I (Dodatkowe katalogi dołączania) opcji kompilatora do dołączenia do wiersza polecenia.

W programie Visual Studio 2010 dziedziczenie jest obsługiwane przez określenie wartości właściwości jako łączenia co najmniej jednej wartości literału i makr właściwości. Makra $(Inherit) i $(NoInherit) nie są obsługiwane.

W poniższym przykładzie lista rozdzielana średnikami jest przypisywana do właściwości na stronie właściwości. Lista składa się z łączenia literału wartości> i wartości MyProperty właściwości, do której uzyskuje się dostęp przy użyciu notacji makr $(MyProperty).<

Property=<value>;$(MyProperty)

pliki .vcxproj.user

Plik użytkownika (.vcxproj.user) przechowuje właściwości specyficzne dla użytkownika, na przykład ustawienia debugowania i wdrażania. Plik vcxproj.user ma zastosowanie do wszystkich projektów dla określonego użytkownika.

plik .vcxproj.filters

Gdy Eksplorator rozwiązań jest używany do dodawania pliku do projektu, plik filtrów (.vcxproj.filters) definiuje, gdzie w widoku drzewa Eksplorator rozwiązań plik jest dodawany, na podstawie jego rozszerzenia nazwy pliku.

Ustawienia katalogów VC++

Ustawienia katalogów visual C++ są określone na stronie właściwości katalogów VC++. W programie Visual Studio 2008 i starszych ustawienia katalogów dotyczą poszczególnych użytkowników, a lista wykluczonych katalogów jest określona w pliku sysincl.dat .

Nie można zmienić ustawień katalogów VC++, jeśli uruchomisz polecenie devenv /resetsettings w wierszu polecenia. Nie można również zmienić ustawień, jeśli otworzysz menu Narzędzia , kliknij pozycję Importuj i eksportuj ustawienia, a następnie wybierz opcję Resetuj wszystkie ustawienia .

Aby przeprowadzić migrację ustawień katalogów VC++ z pliku vssettings utworzonego we wcześniejszej wersji programu Visual Studio:

  1. Otwórz menu Narzędzia, kliknij pozycję Importuj i eksportuj ustawienia
  2. Wybierz pozycję Importuj wybrane ustawienia środowiska
  3. Postępuj zgodnie z instrukcjami w kreatorze.

Zobacz też

Program MSBuild w wierszu polecenia — C++