Procedura: fare riferimento al nome o al percorso del file di progetto
È possibile utilizzare il nome o il percorso del progetto nel file di progetto stesso senza dovere creare una proprietà.In MSBuild sono disponibili proprietà riservate che fanno riferimento al nome del file di progetto e altre proprietà correlate al progetto.Per ulteriori informazioni sulle proprietà riservate, vedere Proprietà riservate MSBuild.
Utilizzo della proprietà MSBuildProjectName
MSBuild fornisce alcune proprietà riservate che possono essere utilizzate nei file di progetto senza doverle definire ogni volta.La proprietà riservata MSBuildProjectName, ad esempio, contiene un riferimento al nome del file di progetto.
Per utilizzare la proprietà MSBuildProjectName
Fare riferimento alla proprietà nel file di progetto utilizzando la notazione $(), come per qualsiasi altra proprietà.Di seguito è riportato un esempio:
<CSC Sources = "@(CSFile)" OutputAssembly = "$(MSBuildProjectName).exe"/> </CSC>
Uno dei vantaggi offerti dall'utilizzo di una proprietà riservata consiste nel fatto che qualsiasi modifica apportata al nome del file di progetto viene incorporata automaticamente.Alla successiva compilazione del progetto, il file di output avrà il nuovo nome senza ulteriori interventi da parte dell'utente.
[!NOTA]
Le proprietà riservate non possono essere ridefinite nel file di progetto.
Esempio
Il file di progetto di esempio riportato di seguito fa riferimento al nome del progetto come proprietà riservata per specificare il nome per l'output.
<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>