如何从c++项目中获取AdditionalIncludeDirectories列表?
我正在用c#编写一个外接程序,用于查看C++解决方案/项目,它需要这种类型的信息,以及来自Visual Studio的"INCLUDE“目录(我也很难获得这些目录,因为它们没有在系统环境变量中列出)。
有没有可以提供AdditionalIncludeDirectories或ProjectIncludeDir的EnvDTE (或VCProject)选项?
发布于 2013-08-07 11:56:41
在VS2012外接程序中,您可以通过执行以下操作来获取AdditionalIncludeDirectories (请注意,这是针对每个项目配置的,而不是针对每个项目的):
您需要添加对"Microsoft.VisualStudio.VCProjectEngine“程序集的引用。
using Microsoft.VisualStudio.VCProjectEngine;
EnvDTE.Project project = null; // You get this project from somewhere
VCProject vcProject = project.Object as VCProject;
IEnumerable projectConfigurations = vcProject.Configurations as IEnumerable;
foreach (Object objectProjectConfig in projectConfigurations)
{
VCConfiguration vcProjectConfig = objectProjectConfig as VCConfiguration;
IEnumerable projectTools = vcProjectConfig.Tools as IEnumerable;
foreach (Object objectProjectTool in projectTools)
{
VCCLCompilerTool compilerTool = objectProjectTool as VCCLCompilerTool;
if (compilerTool != null)
{
string additionalIncludeDirs = compilerTool.AdditionalIncludeDirectories;
break;
}
}
}要从Visual Studio>中获取<"INCLUDE“目录,您可以‘请求’配置来评估VS "IcludePath”变量:
string includeDirs = vcProjectConfig.Evaluate("$(IncludePath)");https://stackoverflow.com/questions/13919266
复制相似问题