Verweisen auf den Namen oder Speicherort der Projektdatei

Sie können den Namen oder Speicherort des Projekts in der Projektdatei verwenden, selbst ohne eine eigene Eigenschaft erstellt zu haben. MSBuild stellt reservierte Eigenschaften zur Verfügung, die auf die Projektdateinamen sowie andere Eigenschaften verweisen, die zum Projekt gehören. Weitere Informationen zu reservierten Eigenschaften finden Sie unter Reservierte und bekannte Eigenschaften für MSBuild.

Verwenden der Projekteigenschaften

MSBuild stellt einige reservierte Eigenschaften bereit, die Sie in den Projektdateien verwenden können, ohne diese jedes Mal zu definieren. Beispiel: Die reservierte Eigenschaft MSBuildProjectName stellt einen Verweis zum Projektdateinamen bereit. Die reservierte Eigenschaft MSBuildProjectDirectory stellt einen Verweis zum Speicherort der Projektdatei bereit.

So verwenden Sie die Projekteigenschaften

  • Verweisen Sie die Eigenschaft in der Projektdatei mit der $()-Notation genau so, wie Sie es mit anderen Eigenschaften machen würden. Beispiel:

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

    Ein Vorteil der Verwendung einer reservierten Eigenschaft ist, dass alle Änderungen am Projektdateinamen automatisch integriert sind. Das nächste Mal, wenn Sie das Projekt erstellen, wird die Ausgabedatei den neuen Namen haben, ohne dass von Ihnen Handlungsbedarf besteht.

    Weitere Informationen zur Verwendung von Sonderzeichen in Datei- oder Projektverweisen finden Sie unter MSBuild-Sonderzeichen.

Hinweis

Reservierte Eigenschaften können nicht in der Projektdatei neu definiert werden.

Beispiel 1

Die folgende Beispiel-Projektdatei verweist den Projektnamen als reservierte Eigenschaft, um den Namen für die Ausgabe anzugeben.

<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>

Beispiel 2

Die folgende Beispielprojektdatei verwendet die reservierte Eigenschaft MSBuildProjectDirectory, um den vollständigen Pfad zu einer Datei im Speicherort der Projektdatei zu erstellen.

<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>

Das Beispiel verwendet die Syntax der Eigenschaftenfunktion, um die statische .NET Framework-Methode System.IO.Path.Combine aufzurufen.