Udostępnij za pośrednictwem


Program MSBuild właściwości

Właściwości są pary nazwa wartość, które służy do konfigurowania buduje.Właściwości są przydatne do przekazywania wartości do zadań, oceny warunków i przechowywania wartości, które będą przywoływane w całym pliku projektu.

Definiowanie i odwoływanie się do właściwości w pliku projektu

Właściwości są zadeklarowane przez tworzenie elementu, który ma nazwę właściwości jako element podrzędny PropertyGroup element.Na przykład, następujący kod XML tworzy właściwość o nazwie BuildDir , który ma wartość Build.

<PropertyGroup>
    <BuildDir>Build</BuildDir>
</PropertyGroup>

Przez cały plik projektu właściwości odwołuje się przy użyciu składni $(PropertyName).Na przykład właściwość w poprzednim przykładzie odwołuje się przy użyciu $(BuildDir).

Wartości właściwości można zmienić poprzez przedefiniowanie właściwość.BuildDir Właściwość można podać nową wartość za pomocą tego kodu XML:

<PropertyGroup>
    <BuildDir>Alternate</BuildDir>
</PropertyGroup>

Właściwości są oceniane w kolejności, w jakiej pojawiają się w pliku projektu.Nową wartość dla BuildDir musi być zadeklarowana, po przypisaniu stara wartość.

Właściwości zastrzeżonych

MSBuildrezerwuje niektóre nazwy właściwości, do przechowywania informacji o pliku projektu i MSBuild pliki binarne.Odwołuje się do tych właściwości przy użyciu notacji $, podobnie jak wszystkie inne właściwości.Na przykład $(MSBuildProjectFile) zwraca pełną nazwę pliku projektu, w tym rozszerzenie nazwy pliku.

Aby uzyskać więcej informacji, zobacz Jak: odwołują się nazwa lub lokalizacja pliku projektu i Program MSBuild zarezerwowanych właściwości.

Właściwości środowiska

Zmienne środowiskowe w plikach programu project można odwoływać się tak, jak odwołać właściwości zastrzeżonych.Na przykład, aby użyć PATH zmiennej środowiskowej w pliku projektu, użyj $(ścieżka).Jeśli projekt zawiera definicję właściwość, która ma taką samą nazwę jak właściwość środowiska, właściwość w projekcie zastępuje wartość zmiennej środowiskowej.

Każdy projekt MSBuild ma blok środowiska na białym tle: tylko widzi odczytuje i zapisuje swój własny blok.MSBuild tylko odczytuje zmiennych środowiskowych, gdy inicjuje Kolekcja właściwości, zanim plik projektu jest oceniane lub wbudowane.Po tym statyczne są właściwości środowiska, oznacza to, że każde narzędzie zduplikowanego rozpoczyna się od tej samej nazwy i wartości.

Aby uzyskać bieżącej wartości zmiennych środowiskowych z zduplikowanego narzędzia programu, należy użyć Funkcje właściwości System.Environment.GetEnvironmentVariable.Jednakże preferowaną metodą jest użycie parametru zadania EnvironmentVariables.Właściwości środowiska, w tym tablica ciągów mogą być przekazywane do zduplikowanego narzędzie bez wpływu na zmienne środowiskowe systemu.

PoradaPorada

Nie wszystkie zmienne środowiskowe są odczytywane w stać się właściwości początkowego.Wszystkie zmienne środowiskowe, którego nazwa jest nie prawidłowy MSBuild nazwy właściwości, takie jak "386" jest ignorowane.

Aby uzyskać więcej informacji, zobacz Jak: używać zmiennych środowiskowych w kompilacji.

Właściwości rejestru

Możesz przeczytać systemu wartości rejestru za pomocą następującej składni, gdzie Hive jest gałęzi rejestru (na przykład, HKEY_LOCAL_MACHINE), Key jest nazwa klucza SubKey jest nazwa podklucza, i Value jest wartość podklucza.

$(registry:Hive\MyKey\MySubKey@Value)

Aby uzyskać wartość domyślną podklucza, należy pominąć Value.

$(registry:Hive\MyKey\MySubKey)

Ta wartość rejestru, można zainicjować właściwość kompilacji.Na przykład aby utworzyć właściwość kompilacji, reprezentujący strony głównej przeglądarki sieci web programu Visual Studio, należy użyć ten kod:

<PropertyGroup>
  <VisualStudioWebBrowserHomePage>
    $(registry:HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebBrowser@HomePage)
  </VisualStudioWebBrowserHomePage>
<PropertyGroup>

Właściwości globalne

MSBuildmożna ustawić właściwości w wierszu polecenia za pomocą /property (lub /p) przełączyć.Te wartości globalnych właściwości zastępują wartości właściwości, które są ustawione w pliku projektu.Zawiera właściwości środowiska, ale nie zawiera właściwości zastrzeżonych, których nie można zmienić.

Poniższy przykład ustawia globalne Configuration właściwość, aby DEBUG.

msbuild.exe MyProj.proj /p:Configuration=DEBUG

Właściwości globalne można także ustawiać lub modyfikować dla projektów podrzędnych w kompilacji multi-project za pomocą Properties atrybut zadania MSBuild.Aby uzyskać więcej informacji, zobacz Zadanie programu MSBuild.

Określona właściwość przy użyciu TreatAsLocalProperty atrybutu w znaczniku projektu, którego wartość właściwości globalne nie zastąpi wartość właściwość, która znajduje się w pliku projektu.Aby uzyskać więcej informacji, zobacz Element projektu (MSBuild) i Jak: tworzenie tych samych plików źródłowych z różnych opcji.

Właściwość funkcji.

W.NET Framework w wersji 4 można użyć funkcji właściwość do oceny skrypty programu MSBuild.Można odczytać czasu systemowego, porównywania ciągów znaków, dopasowanie wyrażeń regularnych i wykonywać wiele innych działań w skrypcie budować bez użycia zadania MSBuild.

Można użyć metody ciąg (wystąpienia) na działanie na dowolną wartość właściwości i można wywołać metody statyczne, wiele klas systemowych.Na przykład można ustawić właściwość build dzisiaj następująco.

<Today>$([System.DateTime]::Now.ToString("yyyy.MM.dd"))</Today>

Więcej informacji i listę właściwości funkcji, zobacz Funkcje właściwości.

Tworzenie właściwości w czasie wykonywania

Właściwości położone poza Target elementy są przypisane wartości podczas fazy oceny kompilacji.Podczas fazy realizacji kolejnych właściwości można utworzona lub zmodyfikowana w następujący sposób:

  • Właściwość mogą być emitowane przez dowolnego zadania.Emitować właściwość, zadanie element musi mieć element podrzędny produkcji element, który ma PropertyName atrybut.

  • Właściwość mogą być emitowane przez CreateProperty zadania.To użycie jest niezalecane.

  • Począwszy od 3,5.NET Framework, Target elementy mogą zawierać PropertyGroup elementów, które mogą zawierać deklaracje właściwości.

Przechowywanie XML właściwości

Właściwości mogą zawierać dowolny XML, co może pomóc w przekazanie wartości do zadań lub wyświetlania informacji rejestrowania.W poniższym przykładzie pokazano ConfigTemplate właściwość, która ma wartość, która zawiera XML i innych właściwości odwołania.MSBuildzastępuje właściwość odniesienia przy użyciu ich wartości poszczególnych właściwości.Wartości właściwości są przypisywane w kolejności, w jakiej są wyświetlane.W związku z tym, w tym przykładzie $(MySupportedVersion), $(MyRequiredVersion), i $(MySafeMode) powinien mieć już zdefiniowana.

<PropertyGroup>
    <ConfigTemplate>
        <Configuration>
            <Startup>
                <SupportedRuntime
                    ImageVersion="$(MySupportedVersion)"
                    Version="$(MySupportedVersion)"/>
                <RequiredRuntime
                    ImageVersion="$(MyRequiredVersion)
                    Version="$(MyRequiredVersion)"
                    SafeMode="$(MySafeMode)"/>
            </Startup>
        </Configuration>
    </ConfigTemplate>
</PropertyGroup>

Zobacz też

Zadania

Jak: używać zmiennych środowiskowych w kompilacji

Jak: odwołują się nazwa lub lokalizacja pliku projektu

Jak: tworzenie tych samych plików źródłowych z różnych opcji

Informacje

Program MSBuild zarezerwowanych właściwości

Właściwość elementu (MSBuild)

Inne zasoby

Pojęcia dotyczące programu MSBuild

Program MSBuild