C# 如何获得VC++;以编程方式包括目录?
我正在用C#编写一个Visual Studio扩展,我需要获取项目属性。更具体地说,我正在寻找一个API,该API允许获取“配置属性>VC++目录>包含目录”的扩展值,或者是如何获取扩展值$(VC_IncludePath)或$(WindowsSDK_IncludePath)。更一般地说,如何获取IDE或编译器设置的任何变量的扩展值 我可以找到一些帖子,告诉我如何获取vcxproj文件中的属性(来自IVsSolution和IVsBuildPropertyStorage)。但是,我要查找的这些属性似乎是由IDE或编译器设置的,并且不在vcxproj文件中。我找不到任何关于这个的帖子 更一般地说,我需要得到以下的扩展值:C# 如何获得VC++;以编程方式包括目录?,c#,visual-studio-extensions,C#,Visual Studio Extensions,我正在用C#编写一个Visual Studio扩展,我需要获取项目属性。更具体地说,我正在寻找一个API,该API允许获取“配置属性>VC++目录>包含目录”的扩展值,或者是如何获取扩展值$(VC_IncludePath)或$(WindowsSDK_IncludePath)。更一般地说,如何获取IDE或编译器设置的任何变量的扩展值 我可以找到一些帖子,告诉我如何获取vcxproj文件中的属性(来自IVsSolution和IVsBuildPropertyStorage)。但是,我要查找的这些属性似
- 配置属性>常规>项目默认值>配置类型
- 配置属性>VC++目录>包含目录
- 配置属性>C/C++>常规>其他包含目录
- 配置属性>C/C++>常规>附加#使用目录
- 配置属性>C/C++>预处理器>预处理器定义
- 配置属性>C/C++>预处理器>取消定义预处理器定义
- 配置属性>C/C++>预处理器>取消定义所有预处理器定义
- 配置属性>C/C++>预处理器>忽略标准包含路径
- 配置属性>NMake>智能感知>预处理器定义
- 配置属性>NMake>智能感知>包含搜索路径
C/C++
选项卡下,您可以使用界面访问它们
对于NMake
选项卡下的属性,使用和访问它们
此外:您可以从卡洛斯J和的这两个博客获得帮助。多亏了他
更新1:
来自VS SDK
的那些api或peroperties用于获取我们在VS UI
中看到的值:
我们可以在VSUI中看到$(…),我们可以使用上面的属性来使用VSSDK获取它们。这些属性返回宏(如
$(VC\u IncludePath)
..是预期的行为。。。要获得$(VC_IncludePath)
的扩展值,这不是VS SDK的工作,因为宏是由msbuild目标和道具文件定义和导入的。您好!很高兴收到你的回音:-)我现在就试试。这些API是否为$(VC_IncludePath)或$(WindowsSDK_IncludePath)(包含目录的默认值)提供扩展值?谢谢我只是试了一下,第一步就成功了。使用VCPlatform时,我会得到完整的对象。不幸的是,内部宏没有展开,我得到IncludeDirectories='$(VC_IncludePath)$(WindowsSDK_IncludePath);”。如何获取这些宏的展开值?谢谢@Stephane我认为使用VSSDK中的api不可能获得宏的扩展值,因为宏来自导入的道具或目标文件,这是不可能的。VS SDK中没有api可以真正为我们扩展价值。我在这里找到了更多文档:它们解释了$(VC\u IncludePath)或$(WindowsSDK\u IncludePath)等令牌是宏。有关如何在GUI中设置新宏或查看值的更多信息,但不包括如何以编程方式获取它们的值:-(