方法 : プログラムからプロジェクト項目を作成する
プログラムによってプロジェクト項目を作成するには、まず、GetProjectItemTemplate を呼び出し、返されたテンプレート パスを AddFromTemplate に渡します。詳細については、「Visual Studio Templates」を参照してください。
GetProjectItemTemplate メソッドは、適切な .zip ファイルから、AddFromTemplate メソッドで使用するためのテンプレートを返します。Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\言語\ にすべての言語のプロジェクト項目テンプレートが格納されています。
カスタムのプロジェクト項目テンプレートを独自に作成することもできます。テンプレートを格納するディレクトリを指定するには、[ツール] メニューの [オプション] をクリックします。[オプション] ダイアログ ボックスの左ペインで、[プロジェクトおよびソリューション] をクリックします。テンプレートのパスを [Visual Studio ユーザー項目テンプレートの場所] ボックスに入力します。
カスタム テンプレートには、Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\言語\ で定義されているファイル名と競合しない一意のファイル名を付ける必要があります。
8dot3 形式ではなく長いファイル名を使用するようにします。詳細については、「Creating Project and Item Templates」を参照してください。
プロジェクトをソリューションから削除するには、Remove を使用します。
次の例では、ジェネリック メソッドを使って、プロジェクト項目を作成しています。言語固有のモデルを使った方法については、「参照」セクションで紹介されている各トピックを参照してください。
[!メモ]
次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。これらの要素は、使用する Visual Studio のエディションとその設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。
プロジェクトへの項目の追加
プログラムによって項目をプロジェクトに追加するには
Visual Studio を起動し、Visual Studio アドイン プロジェクトを作成します。
アドインの Connect クラスに、後で示すコードを追加します。
アドイン プロジェクトを実行し、[アドイン マネージャー] でアクティブにします。これを行うには、[ツール] メニューの [アドイン マネージャー] をクリックし、アドインの横にあるチェック ボックスをオンにします。
使用例
プログラムによって、既存の 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 で 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# のプロジェクトの操作