VSPackage 拡張機能を使用する Visual Studio Extensibility Framework は初めてです。MyToolWindow クラス内で呼び出されるユーザー コントロール内の DTE オブジェクトを取得したいと考えています。
以下の可能性をすべて試しました。
1.EnvDTE80.DTE2 dte2;
dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.10.0");
string solutionPath=dte2.Solution.FullName;
上記の試行は、開いているビジュアル スタジオの最初のインスタンスの SolutionPath のみを提供します。例: Math1.sln と Math2.sln を開いた場合、solutionPath には Math1.sln パスのみが割り当てられます。
- MSDNリンクから、「this.GetService」はbutton1.clickで認識できません(ここに何か欠けていますか)
DTE オブジェクトが取得されると、現在のインスタンスのソリューション名を簡単に取得できるようになります。
ユーザーコントロール内にあるボタンのクリック内で、適切な EnvDTE80.DTE オブジェクトを取得できる必要があります。このユーザー コントロールは、MyToolWindow.cs 内で呼び出されます。
これに関するヘルプは大歓迎です。