代码之家  ›  专栏  ›  技术社区  ›  Goz

分析VS2010 MSBuild vcxproj文件

  •  0
  • Goz  · 技术社区  · 14 年前

    我注意到一些目录快捷方式,如:


    VCInstallDir公司
    解决方案目录
    项目总监

    等等。

    MSBuild从何处获取这些值?我假设它们是为MSBuild进程设置的环境变量(在所有已知的环境变量都以相同的方式寻址之后,即“$(…)”)。这是一个糟糕的假设,所以我想知道我到底是怎么做到的。有人知道这件事吗?

    3 回复  |  直到 14 年前
        1
  •  3
  •   Agent_9191    14 年前

    MSBuild可执行文件(和依赖dll)处理这些属性的方式与处理生成文件中任何其他属性的方式相同。在本例中,它们只是它显式查找的预定义属性。

    Microsoft.Build.dll 在反射器中寻找 Microsoft.Build.Construction.SolutionProjectGenerator.AddGlobalProperties(...)

    另请注意,确保完全向下导航导入指令,并在每次导入时处理属性和项值的覆盖。有许多属性和项是Visual Studio构建的一部分,这些属性和项并不总是正确编译代码所必需的。

        2
  •  2
  •   PJ8    14 年前

    我相信这些都与Visual Studio宏有关: MSDN

        3
  •  2
  •   Greg Domjan    14 年前

    其中一些是由文件的位置定义的

    • SolutionDir-包含此项目的解决方案(.sln)文件的目录
    • ProjectDir-包含项目文件(.vcproj,.vcxproj)的目录

    其他由MSVC安装位置定义

    • C:\Program Files\Microsoft Visual Studio 8\VC

    依此类推,并将根据加载的内容在msbuild内部。