方法 : プログラムからプロジェクト項目を作成する

更新 : 2007 年 11 月

プログラムからプロジェクト項目を作成するには、まず、GetProjectItemTemplate を呼び出し、返されたテンプレート パスを AddFromTemplate に渡します。詳細については、「Visual Studio テンプレート」を参照してください。

GetProjectItemTemplate メソッドは、適切な .zip ファイルから、AddFromTemplate メソッドで使用するためのテンプレートを返します。すべての言語のプロジェクト項目テンプレートは、<drive>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates\Language に格納されています。

カスタムのプロジェクト項目テンプレートを独自に作成することもできます。カスタム テンプレートを格納するディレクトリを指定するには、[ツール] メニューの [オプション] をクリックします。[オプション] ダイアログ ボックスの左ペインで、[プロジェクトおよびソリューション] をクリックします。テンプレートのパスを [Visual Studio ユーザー項目テンプレートの場所] ボックスに入力します。既定の格納場所をそのまま使用してもかまいません。

カスタム テンプレートのファイル名には、<drive>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates\Language に定義されているファイル名と競合しない一意の名前を付ける必要があります。

必ず 8:3 形式を超えた長いファイル名を使用してください。詳細については、「プロジェクトと項目テンプレートの作成」を参照してください。

プロジェクトをソリューションから削除するには、Remove を使用します。

次の例では、ジェネリック メソッドを使って、プロジェクト項目を作成しています。言語固有のモデルを使った方法については、「参照」セクションで紹介されている各トピックを参照してください。

ms228774.alert_note(ja-jp,VS.90).gifメモ :

使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに記載されている内容と異なる場合があります。ここに記載されている手順は、全般的な開発設定が適用されているものとして記述されています。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。

プロジェクトへの項目の追加

プログラムによって項目をプロジェクトに追加するには

  1. Visual Studio を起動し、新しい Visual Studio アドイン プロジェクトを作成します。

  2. 次のコードをアドインの Connect クラスに追加します。

  3. アドイン プロジェクトを実行し、[アドイン マネージャ] でアクティブにします。

    [ツール] メニューの [アドイン マネージャ] をクリックし、アドインの横に表示されたチェック ボックスをオンにすると、アドイン プロジェクトがアクティブになります。

使用例

プログラムによって、既存の Visual Basic プロジェクトに項目を追加する方法を次の例に示します。

' Before running the following code, be sure that a Visual Basic 
' project is open in Visual Studio.
Public Sub OnConnection(ByVal application As Object, ByVal _
connectMode As ext_ConnectMode, ByVal addInInst As Object, _
ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    _applicationObject = CType(application, DTE2)
    _addInInstance = CType(addInInst, AddIn)
    createProjectItem(_applicationObject)
End Sub

Sub createProjectItem(ByVal dte As DTE2)
    ' Adds a new Class to an existing Visual Basic project.
    Dim soln As Solution2
    Dim prj As Project
    soln = CType(_applicationObject.Solution, Solution2)
    Dim prjItem As ProjectItem
    Dim itemPath As String

    ' Point to the first project (the Visual Basic project).
    prj = soln.Projects.Item(1)
    ' Retrieve the path to the Class template.
    itemPath = soln.GetProjectItemTemplate("Class.zip", "vbproj")
    ' Create a new project item based on the template, in this case,
    ' a Class.
    prjItem = prj.ProjectItems.AddFromTemplate(itemPath, "MyNewClass")
End Sub
// Before running the following code, be sure that a Visual Basic 
// project is open in Visual Studio.
public void OnConnection(object application,
 Extensibility.ext_ConnectMode connectMode, object addInInst, ref
 System.Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;

    // Pass the applicationObject member variable to the code example.
    createProjectItem(_applicationObject);
}
public void createProjectItem(DTE2 dte)
{
    //Adds a new Class to an existing Visual Basic project.
    Solution2 soln;
    Project prj;
    soln = (Solution2)_applicationObject.Solution;
    ProjectItem prjItem;
    String itemPath;
    // Point to the first project (the Visual Basic project).
    prj = soln.Projects.Item(1);
    // Retrieve the path to the class template.
    itemPath = soln.GetProjectItemTemplate("Class.zip", "vbproj");
    //Create a new project item based on the template, in this
    // case, a Class.
    prjItem = prj.ProjectItems.AddFromTemplate(itemPath, "MyNewClass");
}

コードのコンパイル方法

このコードをコンパイルするには、新しい Visual Studio アドイン プロジェクトを作成し、Connect.cs クラスまたは Connect.vb クラスのコードをこの例のコードと置き換えます。アドインを実行する前に、Visual Studio IDE で Visual Basic プロジェクトを開きます。アドインの実行方法については、「方法 : アドイン マネージャを使用してアドインを制御する」を参照してください。

堅牢性の高いプログラム

プロジェクト項目の名前を Solution.Projects.Item のパラメータとして使用する場合は、プロジェクトの一意の名前を使用する必要があります。一意の名前とは、ソリューション (.sln) ファイルを格納するディレクトリを起点とした、プロジェクト ファイルへの相対パスです。

たとえば、次のソリューション/プロジェクト構造があるとします。

SomeSolution.sln

     WinApp1

          WinApp1.VBProj

この場合、プロジェクトの一意の名前は、"WinApp1/WinApp1.VBProj" になります。したがって、Item メソッドを呼び出す場合は、Solution.Projects.Item("WinApp1/WinApp1.VBProj") のようにします。

参照

処理手順

方法 : オートメーション オブジェクト モデルのコード例をコンパイルおよび実行する

方法 : プログラムからプロジェクトを作成する

概念

Visual Basic および Visual C# のプロジェクトの操作

Visual C++ プロジェクトの操作

Visual Studio テンプレートの概要

その他の技術情報

ソリューションとそのプロジェクトの制御