Sdílet prostřednictvím


Jak: vytvoření stejných zdrojových souborů s různými možnostmi

Při vytváření projektů často kompilace stejné komponenty s možností různých sestavení.Například můžete vytvořit sestavení ladící informace symbol nebo vydané žádné informace o symbolu, ale s povolenou funkcí optimalizace.Nebo můžete vytvořit projekt na konkrétní platformu, jako je například x 86 nebo x64.V těchto případech většinu možností sestavení zůstanou stejné. pouze několik možností jsou změněny na konfiguraci sestavení ovládacího prvku.S MSBuild, vytvořit konfigurace různých sestavení pomocí vlastnosti a podmínky.

Pomocí vlastnosti upravit projekty

Property Element definuje proměnné, které je odkazováno v souboru projektu, jako je například umístění dočasného adresáře nebo nastavit hodnoty vlastností, které se používají v několika konfigurací jako ladicí sestavení a k uvolnění sestavení.Další informace o vlastnostech naleznete v Nástroj MSBuild vlastnosti.

Vlastnosti můžete změnit konfiguraci vašeho sestavení bez nutnosti změny souboru projektu.Condition Atribut Property element a PropertyGroup prvek umožňuje změnit hodnotu vlastnosti.Další informace o MSBuild podmínky, viz Nástroj MSBuild podmínky.

Nastavit skupiny vlastností na základě jiné vlastnosti

  • Použití Condition atribut PropertyGroup prvek podobný následujícímu:

    <PropertyGroup Condition="'$(Flavor)'=='DEBUG'">
        <DebugType>full</DebugType>
        <Optimize>no</Optimize>
    </PropertyGroup>
    

Definovat vlastnost na základě jiné vlastnosti

  • Použití Condition atribut Property prvek podobný následujícímu:

    <DebugType Condition="'$(Flavor)'=='DEBUG'">full</DebugType>
    

Určení vlastností v příkazovém řádku

Jakmile přijmete více konfigurací je zapsán soubor projektu, musíte mít možnost změny konfigurace, při sestavení projektu.MSBuildTato možnost poskytuje povolením vlastnosti zadané na příkazovém řádku pomocí /property nebo /p přepnout.

Nastavit vlastnosti projektu v příkazovém řádku

  • Použití /property přepínač vlastnosti a hodnoty vlastností.Příklad:

    msbuild file.proj /property:Flavor=Debug
    

    -nebo-

    Msbuild file.proj /p:Flavor=Debug
    

Určit více než jednu vlastnost projektu na příkazovém řádku

  • Použít /property nebo /p přepínač několikrát vlastnosti a hodnoty vlastností nebo použít jednu /property nebo /p přepněte a více vlastností oddělte středníky (;).Příklad:

    msbuild file.proj /p:Flavor=Debug;Platform=x86
    

    - nebo -

    msbuild file.proj /p:Flavor=Debug /p:Platform=x86
    

Proměnné prostředí jsou také považovány za vlastnosti a jsou automaticky zahrnuta v MSBuild.Další informace o použití proměnných prostředí naleznete v Jak: použití proměnné prostředí v nové sestavení.

Hodnota vlastnosti zadané na příkazovém řádku mají přednost před libovolnou hodnotu, která je nastavena pro stejnou vlastnost v souboru projektu a hodnota v souboru projektu má přednost před hodnotou v proměnné prostředí.

Toto chování můžete změnit pomocí TreatAsLocalProperty atributu značky projektu.Pro názvy vlastností, které jsou uvedeny tímto atributem hodnota vlastnosti zadané na příkazovém řádku nemá přednost hodnota v souboru projektu.Příklad najdete dále v tomto tématu.

Příklad

Následující příklad kódu projektu "Hello World" obsahuje dvě nové skupiny vlastností, které lze použít k vytvoření sestavení ladění a verzi sestavení.

Sestavení ladicí verze tohoto projektu, zadejte:

msbuild consolehwcs1.proj /p:flavor=debug

Sestavení prodejní verze tohoto projektu, zadejte:

msbuild consolehwcs1.proj /p:flavor=retail

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

    <!-- Sets the default flavor of an environment variable called 
    Flavor is not set or specified on the command line -->
    <PropertyGroup>
        <Flavor Condition="'$(Flavor)'==''">DEBUG</Flavor>
    </PropertyGroup>

    <!-- Define the DEBUG settings -->
    <PropertyGroup Condition="'$(Flavor)'=='DEBUG'">
        <DebugType>full</DebugType>
        <Optimize>no</Optimize>
    </PropertyGroup>

    <!-- Define the RETAIL settings -->
    <PropertyGroup Condition="'$(Flavor)'=='RETAIL'">
        <DebugType>pdbonly</DebugType>
        <Optimize>yes</Optimize>
    </PropertyGroup>

    <!-- Set the application name as a property -->
    <PropertyGroup>
        <appname>HelloWorldCS</appname>
    </PropertyGroup>

    <!-- Specify the inputs by type and file name -->
    <ItemGroup>
        <CSFile Include = "consolehwcs1.cs"/>
    </ItemGroup>

    <Target Name = "Compile">
        <!-- Run the Visual C# compilation using input files
        of type CSFile -->
        <CSC  Sources = "@(CSFile)"
            DebugType="$(DebugType)"
            Optimize="$(Optimize)"
            OutputAssembly="$(appname).exe" >

            <!-- Set the OutputAssembly attribute of the CSC
            task to the name of the executable file that is 
            created -->
            <Output TaskParameter="OutputAssembly"
                ItemName = "EXEFile" />
        </CSC>
        <!-- Log the file name of the output file -->
        <Message Text="The output file is @(EXEFile)"/>
    </Target>
</Project>

Následující příklad ukazuje způsob použití TreatAsLocalProperty atribut.Color Vlastnost má hodnotu Blue v souboru projektu a Green v příkazovém řádku.S TreatAsLocalProperty="Color" do projektu tagu vlastnost příkazového řádku (Green) nelze přepsat vlastnost, která je definována v souboru projektu (Blue).

Sestavení projektu, zadejte následující příkaz:

msbuild colortest.proj /t:go /property:Color=Green

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

    <PropertyGroup>
        <Color>Blue</Color>
    </PropertyGroup>

    <Target Name="go">
        <Message Text="Color: $(Color)" />
    </Target>
</Project>

<!--
  Output with TreatAsLocalProperty="Color" in project tag:
     Color: Blue

  Output without TreatAsLocalProperty="Color" in project tag:
     Color: Green
-->

Viz také

Referenční dokumentace

Prvek projektu (MSBuild)

Další zdroje

MSBuild

Nástroj MSBuild koncepty

Nástroj MSBuild odkaz