无需使用item.Document.FullName即可获取ProjectItem路径

问题描述 投票:9回答:4

我有一个Visual Studio外接程序项目,在该项目中,我必须使用到这些文件的绝对(或相对)路径来遍历当前项目的项目。

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

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

c# visual-studio add-in envdte
4个回答
23
投票

这是您要找的吗?

myProjectItem.Properties.Item(“ FullPath”)。Value


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)文件的完整路径名] >

© www.soinside.com 2019 - 2024. All rights reserved.