我目前正在Visual Studio 2015中开发Visual Studio插件,它将检索与加载的Visual C++项目相关的全局包含/库目录。
根据Microsoft文档,VCDirectories
接口作为Microsoft.VisualStudio.VCProject
命名空间的成员存在。 但是,当我在范围内具有有效的 VCProject 引用时,我无法访问此接口。
public List<string> IncludeDirectories()
{
List<string> includeDirs = new List<string>();
// assume VCProj() returns a valid VCProject object
VCProject proj = VCProj();
VCDirectories dirs = proj.VCDirectories;
return includeDirs;
}
根据我对文档的理解,我应该能够通过上面代码片段中的proj
引用 VCDirectories。 但是VCDirectories
接口不存在。
Visual Studio 报告的完整错误是;'VCProject' does not contain a definition for 'VCDirectories' and no extension method 'VCDirectories' accepting a first argument of type 'VCProject' could be found (are you missing a using directive or an assembly reference?)
.
有人可以告诉我哪里出错了吗?
干杯
编辑
使用卡洛斯提供的信息完成上述功能;
public List<string> IncludeDirectories()
{
List<string> includeDirs = new List<string>();
// assume VCProj() returns a valid VCProject object
VCProject proj = VCProj();
VCPlatform pf = proj.ActiveConfiguration.Platform;
string[] directories = pf.Evalualte(pf.IncludeDirectories).split(';');
foreach(string dir in directories) {
if(dir != "") {
includeDirs.Add(dir);
}
}
return includeDirs;
}
您可能希望改用以下属性:
-
VCPlatform.IncludeDirectory
-
VCPlatform.LibraryDirectory
-
VCCLCompilerTool.AdditionalIncludeDirectory
你可以得到VCPlatform,正如我几年前在这篇文章的方法中所展示的那样:
如何:从外接程序获取视觉C++项目的标准包含目录
您可以使用另一篇文章的方法获取VCCLCompilerTool:
如何:从外接程序获取 Visual C++ 项目的其他包含目录