【问题标题】:Is there a way to reference the root development folder in MSBuild or Visual Studio?有没有办法在 MSBuild 或 Visual Studio 中引用根开发文件夹?
【发布时间】:2021-11-17 02:48:52
【问题描述】:

Visual Studio 为 $SolutionDir 和 $ProjectDir 之类的东西提供了很棒的宏(变量的可怕名称),但我找不到任何指向我的根开发文件夹的东西。我知道在某些情况下这是一个模糊的概念,但是有一种方法可以引用我的根 .git checkout 文件夹肯定会有所帮助,这样我就不必使用在事情移动时会中断的相对路径。有没有人知道在 Visual Studio 中派生这个我可能会丢失的方法?我可以为它编写一个扩展,但理想情况下我希望有一种适用于 Visual Studio 和 MSBuild(用于 Azure DevOps)的方法,因此我不必开发两个解决方案。

【问题讨论】:

  • 您应该定义“根开发”文件夹对您的意义。
  • 当我说“有办法引用我的根 .git checkout 文件夹肯定会有所帮助”时,我以为我做到了
  • 取决于内容。这是否意味着 所有 您的项目文件都在其中,并且您所遵循的逻辑 = '从当前项目文件开始,开始遍历父目录并查找找到 .git 子目录的最后一个目录' ?或者如果第一个就足够了?

标签: visual-studio msbuild


【解决方案1】:

你可以用property functions做这样的事情:

<PropertyGroup>
    ​<ProjectRootDir>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), '.git/index'))</ProjectRootDir>
​</PropertyGroup>

这应该在文件夹结构内的任何级别的目录(即其中的任何 MSBuild 文件内)中工作,只要您的文件夹结构中只有一次 .git\index(在您定义的“最顶层”级别) )。

【讨论】:

  • 克里斯蒂安,这正是我想要的。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-18
  • 2010-11-14
  • 2017-02-26
  • 2011-12-07
  • 2011-12-15
  • 2011-02-09
  • 1970-01-01
相关资源
最近更新 更多