Gewusst wie: Verweisen auf den Namen oder Speicherort der Projektdatei
Aktualisiert: November 2007
Sie können den Namen oder den Speicherort des Projekts in der Projektdatei selbst verwenden, ohne eine eigene Eigenschaft zu erstellen. MSBuild enthält reservierte Eigenschaften, die auf den Projektdateinamen und andere projektbezogene Eigenschaften verweisen. Weitere Informationen zu reservierten Eigenschaften finden Sie unter Reservierte Eigenschaften für MSBuild.
Verwenden der MSBuildProjectName-Eigenschaft
MSBuild stellt einige reservierte Eigenschaften bereit, die Sie in den Projektdateien verwenden können, ohne sie jedes Mal neu zu definieren. Die reservierte Eigenschaft MSBuildProjectName enthält beispielsweise einen Verweis auf den Projektdateinamen.
So verwenden Sie die MSBuildProjectName-Eigenschaft
Verweisen Sie mit der $()-Notation auf die Eigenschaft in der Projektdatei, so als würden Sie auf eine beliebige andere Eigenschaft verweisen. Beispiel:
<CSC Sources = "@(CSFile)" OutputAssembly = "$(MSBuildProjectName).exe"/> </CSC>
Ein Vorteil reservierter Eigenschaften liegt darin, dass Änderungen am Projektdateinamen automatisch übernommen werden. Wenn Sie das Projekt das nächste Mal erstellen, weist die Ausgabedatei den neuen Namen auf, ohne dass ein Eingreifen von Ihrer Seite erforderlich wäre.
Hinweis: |
---|
Reservierte Eigenschaften können in der Projektdatei nicht neu definiert werden. |
Beispiel
Durch die folgende Beispielprojektdatei wird auf den Projektnamen als reservierte Eigenschaft verwiesen, um den Namen für die Ausgabe anzugeben.
<Project xmlns="http://scheams.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>