不使用item.Document.FullName获取ProjectItem路径

10

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

item.Document.FullName 只适用于当前已打开的文件。

是否有其他方法可以在 DTE 对象中访问此信息?

4个回答

26

这是您正在寻找的吗?

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

1
这个链接包含有关ProjectItem属性列表中包含的更具体信息:http://msdn.microsoft.com/en-us/library/ms228957(v=vs.90).aspx - Charles Randall
有属性列表吗? - Hooch

4

我曾经也在寻找一种解决方案,可以根据文档或文件名获取项目名称。最终我通过使用DTE对象实现了这个目标。下面是初始化DTE对象的代码示例。

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

然后我使用以下代码来获取项目的名称。
var projectItem = objDTE.Solution.FindProjectItem(document);
var projectUniqueName = projectItem.ContainingProject.UniqueName;

0

我们发现,除非我们想自己解析XML项目文件,否则必须先加载任何未加载的项目。

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


0

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

例如,如果您有一个名为“ MyWebForm”的 Web 表单项,您可以从 ProjectItem.FileNames 获取 MyWebForm.ascx 文件的完整路径和 MyWebForm.ascx.cs(CodeBehind)文件的完整路径名称。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接