Краткий ответ: Нет, по умолчанию в MSBuild отсутствует понимание систем управления исходным кодом.
Файл Directory.Build.props
, вероятно, является наиболее надежным подходом, который отображается независимо от построения решения или отдельных проектов.поскольку он остается неизменным независимо от системы VCS, которую вы используете или переносите в / из.
Другие подходы должны были бы жестко кодировать структуру VCS, например, поиск каталога, содержащего файл .gitignore
(который не будет работать, если вы не используете такой файл):
<PropertyGroup>
<RepoRoot>$([System.IO.Path]::GetDirectoryName($([MSBuild]::GetPathOfFileAbove('.gitignore', '$(MSBuildThisFileDirectory)'))))</RepoRoot>
</PropertyGroup>