Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
MSBuild tillhandahåller reserverade egenskaper som refererar till projektfilens namn och andra egenskaper som är relaterade till projektet. Du kan använda namnet eller platsen för projektet i själva projektfilen utan att behöva skapa en egen egenskap. Mer information om reserverade egenskaper finns i MSBuild reserverade och välkända egenskaper.
Förutsättningar
Ett Visual Studio-projekt som bygger med MSBuild.
Använda reserverade projektegenskaper
MSBuild innehåller några reserverade egenskaper som du kan använda i dina projektfiler utan att definiera dem varje gång. Den reserverade egenskapen MSBuildProjectName innehåller till exempel en referens till projektfilens namn. Den reserverade egenskapen MSBuildProjectDirectory innehåller en referens till projektfilens plats.
En fördel med att använda den reserverade egenskapen är att alla ändringar i projektfilens namn införlivas automatiskt. Nästa gång du skapar projektet uppdateras utdatafilen och andra filnamn som använder egenskapen automatiskt till det nya namnet.
Om du vill använda projektegenskaperna refererar du till egenskapen i projektfilen med notationen $() , precis som vilken egenskap som helst. Till exempel:
<CSC Sources = "@(CSFile)"
OutputAssembly = "$(MSBuildProjectName).exe"/>
</CSC>
Information om hur du använder specialtecken i fil- eller projektreferenser finns i MSBuild specialtecken.
Anmärkning
Du kan inte omdefiniera reserverade egenskaper i projektfilen.
Använd MSBuildProjectName för att ange filnamn för utdata
Följande exempelprojektfil refererar till projektnamnet som en reserverad egenskap för att ange namnet på utdata.
<Project 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>
Använd MSBuildProjectDirectory för att skapa den fullständiga sökvägen till en fil
I följande exempelprojektfil används den MSBuildProjectDirectory reserverade egenskapen för att skapa den fullständiga sökvägen till en fil på projektfilens plats. I exemplet används syntaxen för egenskapsfunktionen för att anropa den statiska .NET Framework-metoden System.IO.Path.Combine.
<Project>
<!-- Build the path to a file in the root of the project -->
<PropertyGroup>
<NewFilePath>$([System.IO.Path]::Combine($(MSBuildProjectDirectory), `BuildInfo.txt`))</NewFilePath>
</PropertyGroup>
</Project>