2011-07-19 7 views
7

私はビジュアルスタジオアドインプロジェクトを持っています。ここでは、現在のプロジェクトのアイテムを反復処理し、絶対パス(または相対パス)を使用する必要があります。item.Document.FullNameを使用せずにProjectItemパスを取得

item.Document.FullNameが機能しますが、現在開いているファイルのみが対象です。

DTEオブジェクトのこの情報にアクセスする他の方法はありますか?

答えて

0

XMLプロジェクトファイルを自分で解析しない限り、最初にアンロードされたプロジェクトをロードする必要があります。

リストを記録してから再びアンロードします。唯一の問題は、ロードにかかる時間です。

0

ProjectItem.FileNamesは、あなたが「MyWebForm」と呼ばれるWEBフォーム項目を持っている場合は、にProjectItem.FileNamesからの完全なパスを取得することができる。例えば、関連するファイル

の完全なパスを表しコレクションですMyWebForm.ascxファイルとMyWebForm.ascx.cs(CodeBehind)ファイルの絶対パス名

16

これはあなたの探しているものですか?

myProjectItem.Properties.Item(「フルパス」)。バリュー

+0

そして、このリンクのProjectItemのプロパティリストに含まれているかについて、いくつかのより具体的な情報があります)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; 
関連する問題