Udostępnij za pośrednictwem


Funkcje właściwości

W wersjach.NET Framework, 4 i 4,5 właściwość funkcje można do oceny skrypty programu MSBuild.Właściwość funkcje mogą być używane, wszędzie tam, gdzie są wyświetlane właściwości.W przeciwieństwie do zadań właściwości funkcji mogą być używane poza cele i są oceniane przed uruchomieniem wszelkich docelowej.

Bez użycia programu MSBuild zadań, można odczytać czasu systemowego, porównywania ciągów znaków, dopasowanie wyrażeń regularnych i wykonywania innych akcji w skrypcie kompilacji.Program MSBuild spróbuje przekonwertować ciąg na liczbę i liczby na ciąg i dokonać konwersji, inne wymagane.

W tym temacie:

  • Składnia funkcji właściwość

    • Ciąg właściwość funkcji

    • Funkcje właściwości statyczne

    • Wywołanie metody instancji na właściwości statyczne

    • Funkcje programu MSBuild właściwości

  • Funkcje zagnieżdżone właściwość

  • Program MSBuild DoesTaskHostExist

  • Program MSBuild GetDirectoryNameOfFileAbove

  • Program MSBuild GetRegistryValue

  • Program MSBuild GetRegistryValueFromView

  • Program MSBuild MakeRelative

  • Program MSBuild ValueOrDefault

Składnia funkcji właściwość

Są trzy rodzaje właściwości funkcji; Każda funkcja ma inną składnię:

  • Funkcje właściwość ciągu (wystąpienia)

  • Funkcje właściwości statyczne

  • Funkcje programu MSBuild właściwości

Dd633440.collapse_all(pl-pl,VS.110).gifCiąg właściwość funkcji

Wszystkie wartości właściwości kompilacji są tylko wartości string.Działać na wszystkie wartości właściwości, można użyć metody ciąg (wystąpienia).Na przykład można wyodrębnić nazwę (pierwsze trzy znaki) z właściwość kompilacji, która reprezentuje pełną ścieżkę za pomocą tego kodu:

$(ProjectOutputFolder.Substring(0,3))

Dd633440.collapse_all(pl-pl,VS.110).gifFunkcje właściwości statyczne

W skrypcie kompilacji można uzyskać dostęp, statyczne właściwości i metody klas systemowych wiele.Aby uzyskać wartość właściwości statycznych, należy użyć następującej składni, gdzie klasy jest nazwa klasy systemu i Właściwość jest nazwą właściwości.

$([Class]::Property)

Na przykład następujący kod można użyć, aby ustawić właściwość kompilacji do bieżącej daty i godziny.

<Today>$([System.DateTime]::Now)</Today>

Wywołanie metody statycznej, należy użyć następującej składni, gdzie klasy jest nazwa klasy systemu Metoda jest nazwą metody, i (parametry) jest lista parametrów dla metody:

$([Class]::Member(Parameters))

Na przykład aby ustawić właściwość kompilacji nowego identyfikatora GUID, można użyć ten skrypt:

<NewGuid>$([System.Guid]::NewGuid())</NewGuid>

W funkcji statycznej właściwości można użyć dowolnego statycznej metody lub właściwości tych klas systemowych:

  • System.Byte

  • System.Char

  • System.Convert

  • Format System.DateTime

  • Decimal

  • System.Double

  • Element System.Enum

  • System.Guid

  • System.Int16

  • System.Int32

  • System.Int64

  • System.IO.Path

  • System.Math

  • System.UInt16

  • System.UInt32

  • System.UInt64

  • System.SByte

  • System.Single

  • System.String

  • System.StringComparer

  • Obiekt System.TimeSpan

  • System.Text.RegularExpressions.Regex

  • Microsoft.Build.Utilities.ToolLocationHelper

Ponadto można użyć następujących metod statycznych i właściwości:

  • System.Environment::CommandLine

  • System.Environment::ExpandEnvironmentVariables

  • System.Environment::GetEnvironmentVariable

  • System.Environment::GetEnvironmentVariables

  • System.Environment::GetFolderPath

  • System.Environment::GetLogicalDrives

  • System.IO.Directory::GetDirectories

  • System.IO.Directory::GetFiles

  • System.IO.Directory::GetLastAccessTime

  • System.IO.Directory::GetLastWriteTime

  • System.IO.Directory::GetParent

  • System.IO.File::Exists

  • System.IO.File::GetCreationTime

  • System.IO.File::GetAttributes

  • System.IO.File::GetLastAccessTime

  • System.IO.File::GetLastWriteTime

  • System.IO.File::ReadAllText

Dd633440.collapse_all(pl-pl,VS.110).gifWywołanie metody instancji na właściwości statyczne

Jeśli dostęp do właściwości statycznej, która zwraca wystąpienie obiektu, można wywołać metody instancji tego obiektu.Wywołaj metodę instancji, należy użyć następującej składni, gdzie klasy jest nazwa klasy systemu Właściwość jest nazwą właściwości, metoda jest nazwa metody, i (parametry) jest lista parametrów dla metody:

$([Class]:: Property.Method(Parameters))

Nazwa klasy musi być w pełni kwalifikowana z obszaru nazw.

Na przykład można użyć następującego kodu ustawić właściwość build dzisiaj data bieżąca.

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

Dd633440.collapse_all(pl-pl,VS.110).gifFunkcje programu MSBuild właściwości

Zapewnienie arytmetyczny, bitowy możliwy jest kilka metod statycznych w budowania logicznych i obsługa znaków escape.Dostęp do tych metod przy użyciu następującej składni, gdzie Metoda jest nazwą metody i Parametry jest lista parametrów metody.

$([MSBuild]::Method(Parameters))

Na przykład dodać razem dwie właściwości, które mają wartości liczbowe, należy użyć następującego kodu.

$([MSBuild]::Add($(NumberOne), $(NumberTwo))

Oto lista funkcji programu MSBuild właściwość:

Funkcja podpis

Opis

Dodać podwójne (podwójne, podwójne b)

Dodać dwie podwaja.

Dodać długo (długie, długie b)

Dodać dwie długie.

podwójne odjąć (podwójne, podwójne b)

Odejmowanie dwóch podwaja.

długo odjąć (długie, długie b)

Odejmowanie dwóch wyroby długie.

podwójne pomnożyć (podwójne, podwójne b)

Pomnożyć dwa podwaja.

długo mnożyć (długo, długo b)

Pomnożyć dwa długie.

Podzielić podwójne (podwójne, podwójne b)

Podzielić dwa podwaja.

Długie dzielenie (długo, długo b)

Podzielić dwa długie.

podwójne Modulo (podwójne, podwójne b)

Modulo dwa podwaja.

długo Modulo (długo, długo b)

Modulo dwa długie.

ciąg Escape(string unescaped)

Escape ciąg zgodnie z regułami ucieczki MSBuild.

String, Unescape (string wyjściowym)

Unescape ciąg znaków zgodnie z regułami ucieczki MSBuild.

int BitwiseOr (int first, int second)

Wykonać bitowe OR na pierwszy i drugi (pierwszy | drugi).

int BitwiseAnd (int first, int second)

Wykonać bitowe AND na pierwszy i drugi (pierwszy & Po drugie).

int BitwiseXor (int first, int second)

Wykonać bitowe XOR na pierwszy i drugi (pierwszy ^ drugi).

int BitwiseNot(int first)

Wykonać bitowe NOT (~ pierwszy).

Funkcje zagnieżdżone właściwość

Można połączyć funkcje właściwości do postaci bardziej złożone funkcje, jak pokazano w następującym przykładzie.

$([MSBuild]::BitwiseAnd(32,   $([System.IO.File]::GetAttributes(tempFile))))

W tym przykładzie zwraca wartość FileAttributesArchive bit (32 lub 0), biorąc pod uwagę przez ścieżkę pliku tempFile. Należy zauważyć, że wartości danych wyliczanych nie pojawiają się nazwy w funkcji właściwość.Wartość liczbowa (32) muszą być używane zamiast.

Metadane mogą być również wyświetlane właściwości zagnieżdżonych funkcji.Aby uzyskać więcej informacji, zobacz Program MSBuild tworzenie pakietów wsadowych..

Program MSBuild DoesTaskHostExist

DoesTaskHostExist Funkcja właściwość w MSBuild zwraca, czy host zadanie jest aktualnie zainstalowane dla określonych wartości runtime i architektury.

Funkcja ta właściwość ma następującą składnię:

$[MSBuild]::DoesTaskHostExist(string theRuntime, string theArchitecture)

Program MSBuild GetDirectoryNameOfFileAbove

Program MSBuild GetDirectoryNameOfFileAbove właściwość Funkcja szuka plików w katalogach o bieżącego katalogu w ścieżce.

Funkcja ta właściwość ma następującą składnię:

$[MSBuild]::GetDirectoryNameOfFileAbove(string ThePath, string TheFile)

Poniższy kod jest przykładem tej składni.

<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), EnlistmentInfo.props))\EnlistmentInfo.props" Condition=" '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), EnlistmentInfo.props))' != '' " />

Program MSBuild GetRegistryValue

Program MSBuild GetRegistryValue właściwość, funkcja zwraca wartość klucza rejestru.Ta funkcja wymaga dwóch argumentów, nazwy klucza i nazwa wartości i zwraca wartość z rejestru.Jeśli nie określono nazwy wartości, zwracana jest wartość domyślna.

Poniższe przykłady pokazują, jak ta funkcja jest używana:

$([MSBuild]::GetRegistryValue(`HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger`, ``))                                  // default value
$([MSBuild]::GetRegistryValue(`HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger`, `SymbolCacheDir`))
$([MSBuild]::GetRegistryValue(`HKEY_LOCAL_MACHINE\SOFTWARE\(SampleName)`, `(SampleValue)`))             // parens in name and value

Program MSBuild GetRegistryValueFromView

Program MSBuild GetRegistryValueFromView właściwość funkcja pobiera dane rejestru systemu podany klucz rejestru, wartość i jeden lub więcej sortowane widoki rejestru.Klucz i wartość są przeszukiwane w każdym widoku rejestru w celu, dopóki nie zostaną one znalezione.

Składnia funkcji ta właściwość jest:

[MSBuild]:: GetRegistryValueFromView (NazwaKlucza ciąg, ciąg valueName, defaultValue obiektu, params object [] widoki)

Windows 64-bitowy system operacyjny przechowuje HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node klucz rejestru, który przedstawia widok rejestru kluczu HKEY_LOCAL_MACHINE\SOFTWARE dla aplikacji 32-bitowych.

Domyślnie 32-bitowej aplikacji działającej w warstwie WOW64 uzyskuje dostęp do widoku 32-bitowego rejestru i aplikacji 64-bitowych uzyskuje dostęp do widoku rejestru w 64-bitowych.

Dostępne są następujące widoki rejestru:

Widok rejestru

Definicja

RegistryView.Registry32

Widok rejestru aplikacji 32-bitowych.

RegistryView.Registry64

Widok rejestru aplikacji 64-bitowych.

RegistryView.Default

Widok rejestru, który pasuje do procesu, że aplikacja jest uruchomiona na.

Poniżej przedstawiono przykład.

$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Silverlight\v3.0\ReferenceAssemblies', 'SLRuntimeInstallPath', null, RegistryView.Registry64, RegistryView.Registry32))

pobiera dane SLRuntimeInstallPath klucza ReferenceAssemblies, patrząc z pierwszym zdaniem 64-bitowego rejestru, a następnie w widoku 32-bitowego rejestru.

Program MSBuild MakeRelative

Program MSBuild MakeRelative właściwość, funkcja zwraca ścieżkę względną ścieżkę drugiego pierwsza ścieżka.Każda ścieżka może być plik lub folder.

Funkcja ta właściwość ma następującą składnię:

$[MSBuild]::MakeRelative($(FileOrFolderPath1), $(FileOrFolderPath2))

Poniższy kod jest przykładem tej składni.

<PropertyGroup>
    <Path1>c:\users\</Path1>
    <Path2>c:\users\username\</Path2>
</PropertyGroup>

<Target Name = "Go">
    <Message Text ="$([MSBuild]::MakeRelative($(Path1), $(Path2)))" />
    <Message Text ="$([MSBuild]::MakeRelative($(Path2), $(Path1)))" />
</Target>

<!--
Output:
   username\
   ..\
-->

Program MSBuild ValueOrDefault

Program MSBuild ValueOrDefault właściwość, funkcja zwraca pierwszy argument, o ile nie jest zerowa lub pusta.Jeśli pierwszy argument jest zerowy lub pusty, funkcja zwraca drugi argument.

Poniższy przykład pokazuje, jak ta funkcja jest używana.

<Project ToolsVersion="4.0" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">

    <PropertyGroup>
        <Value1>$([MSBuild]::ValueOrDefault(`$(UndefinedValue)`, `a`))</Value1>
        <Value2>$([MSBuild]::ValueOrDefault(`b`, `$(Value1)`))</Value2>
    </PropertyGroup>

    <Target Name="MyTarget">
        <Message Text="Value1 = $(Value1)" />
        <Message Text="Value2 = $(Value2)" />
    </Target>
</Project>

<!--
Output: 
  Value1 = a
  Value2 = b
-->

Zobacz też

Koncepcje

Program MSBuild właściwości

Inne zasoby

Program MSBuild