2011-07-19 68 views
7

我有一個Visual Studio外接程序項目,我必須遍歷當前項目的項目,利用這些文件的絕對(或相對)路徑。無需使用item.Document.FullName獲取ProjectItem路徑

item.Document.FullName的作品,但只適用於當前打開的文件。

有沒有其他方法可以訪問DTE對象中的這些信息?

回答

0

我們發現,除非我們想自己解析XML項目文件,否則您必須首先加載任何卸載的項目。

我們記錄下列表並將它們再次卸載,因此唯一的問題是加載它們所需的時間。

0

ProjectItem.FileNames是表示相關文件的完整路徑

例如,如果你調用Web窗體項目「MyWebForm」你可以從ProjectItem.FileNames的完整路徑得到的集合MyWebForm.ascx文件的MyWebForm.ascx.cs(CodeBehind)文件的完整路徑名稱

16

這是你在找什麼?

myProjectItem.Properties.Item(「FULLPATH」)。價值

+0

而這個鏈接有關於什麼是包含在屬性列表的項目項一些更具體的信息:http://msdn.microsoft.com/en-us/library/ms228957(v=vs.90) .aspx –

+0

是否有任何屬性列表? – Hooch

2

即使我一直在尋找解決方案,使基於文檔的項目名或文件名。我通過使用dte對象找到它。 如下所示初始化dte對象。

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

然後使用下面的代碼來獲取項目名稱。

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