このチュートリアルでは、ツール ウィンドウでプロジェクトのプロパティを表示する方法について説明します。
VSIX プロジェクトを作成してツール ウィンドウを追加する方法
すべての Visual Studio 拡張機能は、拡張機能アセットを格納する VSIX デプロイ プロジェクトから始まります。
ProjectPropertiesExtension
という名前の Visual Studio VSIX プロジェクトを作成します。 VSIX プロジェクト テンプレートは、[新しいプロジェクト] ダイアログで「vsix」と検索すると見つかります。ProjectPropertiesToolWindow
という名前のカスタム ツール ウィンドウ項目テンプレートを追加して、ツール ウィンドウを追加します。 ソリューション エクスプローラーで、プロジェクト ノードを右クリックして、[追加]>[新しい項目] の順に選択します。 [新しい項目の追加] ダイアログで、[Visual C# 項目]>[機能拡張] の順にアクセスし、[カスタム ツール ウィンドウ] を選択します。 ダイアログの下部にある [名前] フィールドで、ファイル名をProjectPropertiesToolWindow.cs
に変更します。 カスタム ツール ウィンドウの作成方法について詳しくは、「ツールウィンドウで拡張機能を作成する」をご覧ください。ソリューションをビルドし、エラーが発生することなくソリューションがコンパイルされることを確認します。
ツール ウィンドウでプロジェクトのプロパティを表示する方法
ProjectPropertiesToolWindowCommand.cs ファイルで、次の using ディレクティブを追加します。
using EnvDTE; using System.Windows.Controls;
ProjectPropertiesToolWindowControl.xaml で、既存のボタンを削除し、ツール ボックスから TreeView を追加します。 また、ProjectPropertiesToolWindowControl.xaml.cs ファイルから click イベント ハンドラーを削除することもできます。
ProjectPropertiesToolWindowCommand.cs で、
ShowToolWindow()
メソッドを使用してプロジェクトを開き、そのプロパティを読み取り、プロパティを TreeView に追加します。 ShowToolWindow のコードは次のようになります。private void ShowToolWindow(object sender, EventArgs e) { ToolWindowPane window = this.package.FindToolWindow(typeof(ProjectPropertiesToolWindow), 0, true); if ((null == window) || (null == window.Frame)) { throw new NotSupportedException("Cannot create window."); } IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame; Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show()); // Get the tree view and populate it if there is a project open. ProjectPropertiesToolWindowControl control = (ProjectPropertiesToolWindowControl)window.Content; TreeView treeView = control.treeView; // Reset the TreeView to 0 items. treeView.Items.Clear(); DTE dte = (DTE)this.ServiceProvider.GetService(typeof(DTE)); Projects projects = dte.Solution.Projects; if (projects.Count == 0) // no project is open { TreeViewItem item = new TreeViewItem(); item.Name = "Projects"; item.ItemsSource = new string[]{ "no projects are open." }; item.IsExpanded = true; treeView.Items.Add(item); return; } Project project = projects.Item(1); TreeViewItem item1 = new TreeViewItem(); item1.Header = project.Name + "Properties"; treeView.Items.Add(item1); foreach (Property property in project.Properties) { TreeViewItem item = new TreeViewItem(); item.ItemsSource = new string[] { property.Name }; item.IsExpanded = true; treeView.Items.Add(item); } }
プロジェクトをビルドし、デバッグを開始します。 実験用インスタンスが表示されます。
この実験用インスタンスで、プロジェクトを開きます。
[表示]>[その他のウィンドウ] で、[ProjectPropertiesToolWindow] をクリックします。
ツール ウィンドウにツリー コントロールが表示され、共に最初のプロジェクトとそのすべてのプロジェクト プロパティの名前が表示されます。