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