Odwołanie do nazwy lub lokalizacji pliku projektu

Możesz użyć nazwy lub lokalizacji projektu w samym pliku projektu bez konieczności tworzenia własnej właściwości. Program MSBuild udostępnia właściwości zarezerwowane odwołujące się do nazwy pliku projektu i innych właściwości związanych z projektem. Aby uzyskać więcej informacji na temat właściwości zarezerwowanych, zobacz MSBuild reserved i dobrze znane właściwości.

Korzystanie z właściwości projektu

Program MSBuild udostępnia niektóre zastrzeżone właściwości, których można używać w plikach projektu bez definiowania ich za każdym razem. Na przykład właściwość MSBuildProjectName zarezerwowana zawiera odwołanie do nazwy pliku projektu. Właściwość MSBuildProjectDirectory zarezerwowana zawiera odwołanie do lokalizacji pliku projektu.

Aby użyć właściwości projektu

  • Odwołuj się do właściwości w pliku projektu z notacją $(), tak jak w przypadku dowolnej właściwości. Na przykład:

    <CSC Sources = "@(CSFile)"
        OutputAssembly = "$(MSBuildProjectName).exe"/>
    </CSC>
    

    Zaletą używania właściwości zarezerwowanej jest to, że wszelkie zmiany nazwy pliku projektu są automatycznie uwzględniane. Następnym razem, gdy skompilujesz projekt, plik wyjściowy będzie miał nową nazwę bez konieczności wykonywania dalszych działań.

    Aby uzyskać więcej informacji na temat używania znaków specjalnych w plikach lub odwołaniach do projektu, zobacz ZNAKI specjalne programu MSBuild.

Uwaga

Nie można ponownie zdefiniować właściwości zarezerwowanych w pliku projektu.

Przykład 1

Poniższy przykładowy plik projektu odwołuje się do nazwy projektu jako właściwości zarezerwowanej, aby określić nazwę danych wyjściowych.

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

    <!-- Specify the inputs -->
    <ItemGroup>
        <CSFile Include = "consolehwcs1.cs"/>
     </ItemGroup>
    <Target Name = "Compile">
        <!-- Run the Visual C# compilation using
        input files of type CSFile -->
        <CSC Sources = "@(CSFile)"
            OutputAssembly = "$(MSBuildProjectName).exe" >
            <!-- Set the OutputAssembly attribute of the CSC task
            to the name of the project -->
            <Output
                TaskParameter = "OutputAssembly"
                ItemName = "EXEFile" />
        </CSC>
        <!-- Log the file name of the output file -->
        <Message Text="The output file is @(EXEFile)"/>
    </Target>
</Project>

Przykład 2

Poniższy przykładowy plik projektu używa właściwości zarezerwowanej MSBuildProjectDirectory do utworzenia pełnej ścieżki do pliku w lokalizacji pliku projektu.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <!-- Build the path to a file in the root of the project -->
    <PropertyGroup>
        <NewFilePath>$([System.IO.Path]::Combine($(MSBuildProjectDirectory), `BuildInfo.txt`))</NewFilePath>
    </PropertyGroup>
</Project>

W przykładzie użyto składni funkcji Property w celu wywołania statycznej metody System.IO.Path.Combine.NET Framework .