【问题标题】:C# Visual Studio SDK: VCDirectories interfaceC# Visual Studio SDK:VCDirectories 接口
【发布时间】:2018-08-23 10:31:48
【问题描述】:

我目前正在开发 Visual Studio 2015 中的 Visual Studio 插件,它将检索与已加载的 Visual C++ 项目相关的全局包含/库目录。

根据Microsoft DocumentationVCDirectories 接口作为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;
}

根据我对文档的理解,我应该可以在上面的 sn-p 中通过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;
}

【问题讨论】:

    标签: c# visual-studio-2015 visual-studio-2017 visual-studio-addins visual-studio-sdk


    【解决方案1】:

    您可能希望使用以下属性:

    你可以得到我几年前在这篇文章的方法中展示的VCPlatform:

    HOWTO: Get standard include directories of Visual C++ project from an add-in

    您可以通过这篇其他文章的方法获得VCCLCompilerTool:

    HOWTO: Get additional include directories of Visual C++ project from an add-in

    【讨论】:

    • 太好了,谢谢。我从here 找到了另一个使用VCProject.ActiveConfiguration.Rules.Item("ConfigurationDirectories") 的解决方法,但这似乎更优雅。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    相关资源
    最近更新 更多