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