Udostępnij za pośrednictwem


Porady: użycie tej samej wartości docelowej w wielu plikach projektów

Jeśli zostały utworzone kilka MSBuild pliki projektu może mieć napotykasz trzeba użyć tych samych zadań i celów w różnych plików projektów.Pełny opis tych zadań i celów łącznie w każdym pliku projektu, a nie można zapisać elementu docelowego w oddzielny plik projektu i następnie zaimportować projektu do innego projektu, który musi korzystać z obiektu docelowego.

Za pomocą elementu importu

Import Element jest używany, aby wstawić jeden plik projektu do innego pliku projektu.Jest importowany plik projektu musi być prawidłową MSBuild pliku projektu i zawierać poprawnie sformułowany kod XML.Project Atrybut określa ścieżkę do zaimportowanego pliku projektu.Aby uzyskać więcej informacji na Import element, zobacz Import — Element (MSBuild).

Aby zaimportować projekt

  1. Zdefiniuj w importowania pliku projektu wszystkie właściwości i elementy, które są używane jako parametry dla właściwości i elementy projektu przywożonych.

  2. Użyj Import element, aby zaimportować projekt.Na przykład:

    <Import Project="MyCommon.targets"/>

  3. Po Import element, zdefiniować wszystkie właściwości i elementy i elementy, które należy zastąpić domyślne definicji właściwości w projekcie przywożonych.

Kolejność

Gdy MSBuild osiągnie Import element importowany projekt skutecznie jest wstawiany do przywozu projektu w miejscu Import element.Dlatego lokalizację Import element może mieć wpływ na wartości właściwości i elementy.Jest ważne zrozumienie właściwości i elementy, które są ustawiane przez importowany projekt i właściwości i elementy, które używa importowany projekt.

Gdy buduje projektu, wszystkie właściwości są oceniane po raz pierwszy, następują elementy.Na przykład następujący kod XML definiuje zaimportowanego pliku projektu MyCommon.targets:

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Name>MyCommon</Name>
    </PropertyGroup>

    <Target Name="Go">
        <Message Text="Name=$(Name)"/>
    </Target>
</Project>

Następujące XML definiuje MyApp.proj, którego przywóz MyCommon.targets:

<Project
    DefaultTargets="Go"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Name>MyApp</Name>
    </PropertyGroup>
    <Import Project="MyCommon.targets"/>
</Project>

Gdy projekt buduje, wyświetlany jest następujący komunikat:

Name="MyCommon"

Ponieważ projekt jest przywożone po właściwość Name w MyApp.proj, definicja zdefiniowano Name w MyCommon.targets zastępuje definicji w MyApp.proj.Jeśli projekt jest przywożony przed zdefiniowane nazwy właściwości, budowanie byłby wyświetlony następujący komunikat:

Name="MyApp"

Użyj następujących podejście podczas importowania projektów

  1. Zdefiniuj w pliku projektu, wszystkie właściwości i elementy, które są używane jako parametry dla właściwości i elementy projektu przywożonych.

  2. Importowanie projektu.

  3. Wszystkie właściwości i elementy projektu przywożonych i elementy, które należy zastąpić domyślne definicji właściwości, należy zdefiniować w pliku projektu.

Przykład

Poniższy przykład kodu pokazuje pliku MyCommon.targets, że przywóz w drugim przykładzie kodu.Plik .targets jest wynikiem właściwości z przywozu projektu, aby skonfigurować budowanie.

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Flavor Condition="'$(Flavor)'==''">DEBUG</Flavor>
        <Optimize Condition="'$(Flavor)'=='RETAIL'">yes</Optimize>
        <appname>$(MSBuildProjectName)</appname>
    <PropertyGroup>
    <Target Name="Build">
        <Csc Sources="hello.cs"
            Optimize="$(Optimize)"
            OutputAssembly="$(appname).exe"/>
    </Target>
</Project>

Poniższy przykład kodu importuje plik MyCommon.targets.

<Project DefaultTargets="Build"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Flavor>RETAIL</Flavor>
    </PropertyGroup>
    <Import Project="MyCommon.targets"/>
</Project>

Zobacz też

Informacje

Import — Element (MSBuild)

Koncepcje

Obiekty docelowe w programie MSBuild