Практическое руководство. Использование ссылки на имя или расположение файла проекта
Обновлен: Ноябрь 2007
Имя и расположение проекта можно использовать в файле проекта, не создавая собственного свойства. В MSBuild предоставляются зарезервированные свойства, содержащие ссылку на имя файла проекта, а также другие свойства, относящиеся к проекту. Дополнительные сведения о зарезервированных свойствах см. в разделе Зарезервированные свойства MSBuild.
Использование свойства MSBuildProjectName
В MSBuild предоставляются некоторые зарезервированные свойства, которые можно использовать в файлах проекта, не определяя их каждый раз. Например, в зарезервированном свойстве MSBuildProjectName предоставляется ссылка на имя файла проекта.
Использование свойства MSBuildProjectName
Для указания ссылки в файле проекта используйте запись $(), как и для любого другого свойства. Например:
<CSC Sources = "@(CSFile)" OutputAssembly = "$(MSBuildProjectName).exe"/> </CSC>
Преимущество использования зарезервированного свойства состоит в том, что любые изменения в имени файла проекта применяются автоматически. При следующем построении проекта выходной файл получит новое имя без каких-либо дополнительных действий с вашей стороны.
Примечание. |
---|
Зарезервированные свойства нельзя переопределить в файле проекта. |
Пример
В приведенном ниже примере файл проекта содержит ссылку на имя проекта в виде зарезервированного свойства, чтобы задать имя для выходного файла.
<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>