Udostępnij za pośrednictwem


When — Element (MSBuild)

Określa możliwe blok kodu dla Choose element, aby wybrać.

<When Condition="'StringA'=='StringB'">
    <PropertyGroup>... </PropertyGroup>
    <ItemGroup>... </ItemGroup>
    <Choose>... </Choose>
</When>

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementów nadrzędnych.

Atrybuty

Atrybut

Opis

Warunek

Wymagany atrybut.

Stan do oceny.Aby uzyskać więcej informacji, zobacz Warunki MSBuild.

Elementy podrzędne

Element

Opis

Wybierz polecenie

Opcjonalny element.

Ocena elementów podrzędnych, aby wybrać jedną sekcję kodu do wykonania.Może być zero lub więcej Choose elementy w When element.

ItemGroup

Opcjonalny element.

Zawiera zestaw zdefiniowanych przez użytkownika elementu elementy.Może być zero lub więcej ItemGroup elementy w When element.

PropertyGroup

Opcjonalny element.

Zawiera zestaw zdefiniowanych przez użytkownika Właściwość elementy.Może być zero lub więcej PropertyGroup elementy w When element.

Elementy nadrzędne

Element

Opis

Choose — Element (MSBuild)

Ocena elementów podrzędnych, aby wybrać jedną sekcję kodu do wykonania.

Uwagi

Jeśli Condition atrybut ma wartość PRAWDA, dziecko, ItemGroup i PropertyGroup elementy When elementu są wykonywane i wszystkich kolejnych When elementy są pomijane.

Choose, When, I Otherwise elementy są używane razem w sposób, aby wybrać jedną sekcję kodu do wykonania z wielu możliwych alternatyw.Aby uzyskać więcej informacji, zobacz Konstrukcje warunkowe MSBuild.

Przykład

Następujące projekt używa Choose element, aby wybrać który zestaw wartości właściwości w When elementów, aby ustawić.Jeśli Condition atrybuty obu When elementy oceny do false, właściwość wartości w Otherwise elementu są ustawione.

<Project
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003" >
    <PropertyGroup>
        <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
        <OutputType>Exe</OutputType>
        <RootNamespace>ConsoleApplication1</RootNamespace>
        <AssemblyName>ConsoleApplication1</AssemblyName>
        <WarningLevel>4</WarningLevel>
    </PropertyGroup>
    <Choose>
        <When Condition=" '$(Configuration)'=='debug' ">
            <PropertyGroup>
                <DebugSymbols>true</DebugSymbols>
                <DebugType>full</DebugType>
                <Optimize>false</Optimize>
                <OutputPath>.\bin\Debug\</OutputPath>
                <DefineConstants>DEBUG;TRACE</DefineConstants>
            </PropertyGroup>
            <ItemGroup>
                <Compile Include="UnitTesting\*.cs" />
                <Reference Include="NUnit.dll" />
            </ItemGroup>
        </When>
        <When Condition=" '$(Configuration)'=='retail' ">
            <PropertyGroup>
                <DebugSymbols>false</DebugSymbols>
                <Optimize>true</Optimize>
                <OutputPath>.\bin\Release\</OutputPath>
                <DefineConstants>TRACE</DefineConstants>
            </PropertyGroup>
        </When>
        <Otherwise>
            <PropertyGroup>
                <DebugSymbols>true</DebugSymbols>
                <Optimize>false</Optimize>
                <OutputPath>.\bin\$(Configuration)\</OutputPath>
                <DefineConstants>DEBUG;TRACE</DefineConstants>
            </PropertyGroup>
        </Otherwise>
    </Choose>
    <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project>

Zobacz też

Informacje

Konstrukcje warunkowe MSBuild

Koncepcje

Odwołanie do schematu pliku projektu MSBuild