Получить список AdditionalIncludeDirectories через EnvDTE

Как я могу получить список AdditionalIncludeDirectories из проекта C ++?

Я пишу надстройку в C #, которая рассматривает решение / проект C ++, и для нее требуется информация такого типа, а также каталоги «INCLUDE» из Visual Studio (которые у меня тоже возникают проблемы, потому что они не перечислены в переменных системной среды).

Есть EnvDTE (или же VCProject) вариант, который может дать мне AdditionalIncludeDirectories, или же ProjectIncludeDir ?

0

Решение

В надстройке для 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;
}
}
}

Чтобы получить <Каталоги «INCLUDE» из Visual Studio> вы можете запросить конфигурацию для оценки переменной VS «IcludePath»:

string includeDirs = vcProjectConfig.Evaluate("$(IncludePath)");
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]