【问题标题】:Get ProjectItem path without using item.Document.FullName在不使用 item.Document.FullName 的情况下获取 ProjectItem 路径
【发布时间】:2011-07-19 21:14:37
【问题描述】:

我有一个 Visual Studio 插件项目,我必须使用这些文件的绝对(或相对)路径遍历当前项目的项目。

item.Document.FullName 有效,但仅适用于当前打开的文件。

还有其他方法可以访问DTE 对象中的这些信息吗?

【问题讨论】:

    标签: c# visual-studio add-in envdte


    【解决方案1】:

    这就是你要找的吗?

    myProjectItem.Properties.Item("FullPath").Value
    

    【讨论】:

    【解决方案2】:

    即使我也在寻找一种解决方案来根据文档或文件名获取项目名称。我通过使用DTE 对象找到了它。 初始化DTE 对象,如下所示。

    EnvDTE80.DTE2 objDTE = this.GetService(typeof(SDTE)) as EnvDTE80.DTE2;
    

    然后我使用以下代码来获取项目的名称。

    var projectItem = objDTE.Solution.FindProjectItem(document);
    var projectUniqueName = projectItem.ContainingProject.UniqueName;
    

    【讨论】:

      【解决方案3】:

      我们发现,除非我们想自己解析 XML 项目文件,否则您必须先加载所有已卸载的项目。

      我们记录列表并在之后再次卸载它们,因此唯一的问题是加载它们所需的时间。

      【讨论】:

        【解决方案4】:

        ProjectItem.FileNames 是一个集合,表示关联文件的完整路径

        例如,如果您有名为“MyWebForm”的网络表单项,您可以从 ProjectItem.FileNames 获取 MyWebForm.ascx 文件的完整路径以及 MyWebForm.ascx.cs 的完整路径名( CodeBehind) 文件

        【讨论】:

          猜你喜欢
          • 2012-04-19
          • 1970-01-01
          • 2011-01-25
          • 1970-01-01
          • 2013-02-03
          • 2021-12-21
          • 1970-01-01
          • 2021-09-12
          • 1970-01-01
          相关资源
          最近更新 更多