方法 : プログラムからプロジェクトを作成する
更新 : 2007 年 11 月
プロジェクトを作成するには、まず、GetProjectTemplate を呼び出し、返されたテンプレート パスを AddFromTemplate に渡します。
プロジェクト テンプレートは、.vstemplate という拡張子を持ち、.zip ファイルに格納されます。.zip ファイルに格納された .vstemplate ファイルのパスを取得するには、GetProjectTemplate を使用します。このパスを AddFromTemplate に渡すことによってプロジェクトを作成できます。ソリューションをまだ開いていない場合は、ソリューションを作成することもできます。この操作は必要に応じて何度でも実行でき、作成された各プロジェクトは現在開いているソリューションに追加されます。
すべての言語のプロジェクト テンプレートは、<drive>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\Language に格納されています。
カスタムのプロジェクト テンプレートを独自に作成することもできます。カスタム テンプレートを格納するディレクトリを指定するには、[ツール] メニューの [オプション] をクリックします。[オプション] ダイアログ ボックスの左ペインで、[プロジェクトおよびソリューション] をクリックします。テンプレートのパスを [Visual Studio ユーザー プロジェクト テンプレートの場所] ボックスに入力します。既定の格納場所をそのまま使用してもかまいません。
カスタム プロジェクト テンプレートのファイル名には、<drive>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\Language に定義されているファイル名と競合しない、一意の名前を付ける必要があります。
必ず 8:3 形式を超えた長いファイル名を使用してください。詳細については、「プロジェクトと項目テンプレートの作成」を参照してください。
メモ : |
---|
使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに記載されている内容と異なる場合があります。ここに記載されている手順は、全般的な開発設定が適用されているものとして記述されています。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。 |
新規プロジェクトの作成
プロジェクトをプログラムから作成するには
Visual Studio を起動し、新しい Visual Studio アドイン プロジェクトを作成します。
次のコードをアドインの Connect クラスに追加します。
アドイン プロジェクトを実行し、[アドイン マネージャ] でアクティブにします。
[ツール] メニューの [アドイン マネージャ] をクリックし、アドインの横に表示されたチェック ボックスをオンにすると、アドイン プロジェクトがアクティブになります。
使用例
次の例では、GetProjectTemplate および AddFromTemplate を使用して、Visual Basic と Visual C# の 2 つのコンソール プロジェクトをソリューションに新規作成します。
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)
createProjectsFromTemplates(_applicationObject)
End Sub
Sub createProjectsFromTemplates(ByVal dte As DTE2)
Try
' Create a solution with two projects in it, based on project
' templates.
Dim soln As Solution2 = CType(DTE.Solution, _
Solution2)
Dim csTemplatePath As String
Dim vbTemplatePath As String
Dim csPrjPath As String = _
"C:\UserFiles\kempb\addins\MyCSProject"
Dim vbPrjPath As String = _
"C:\UserFiles\kempb\addins\MyVBProject"
' Get the project template path for a C# console project.
' Console Application is the template name that appears in the
' right pane, "CSharp" is the Language(vstemplate) as seen in
' the registry.
csTemplatePath = soln.GetProjectTemplate _
("ConsoleApplication.zip", "CSharp")
MsgBox("C# template path: " & csTemplatePath)
' Get the project template path for a Visual Basic
' console project.
' "vbproj: is the DefaultProjectExtension as seen in the
' registry.
vbTemplatePath = soln.GetProjectTemplate _
("ConsoleApplication.zip", "vbproj")
MsgBox("Visual Basic template path: " & vbTemplatePath)
' Create a new C# console project using the template obtained
' above.
soln.AddFromTemplate(csTemplatePath, csPrjPath, _
"New CSharp Console Project", False)
' Create a new Visual Basic console project using the template
' obtained above.
soln.AddFromTemplate(vbTemplatePath, vbPrjPath, _
"New Visual Basic Console Project", False)
Catch ex As System.Exception
MsgBox("ERROR: " & ex.ToString)
End Try
End Sub
public void OnConnection(object application, ext_ConnectMode
connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
createProjectsFromTemplates(_applicationObject);
}
public void createProjectsFromTemplates(DTE2 dte)
{
try
{
// Create a solution with two projects in it, based on project
// templates.
Solution2 soln = (Solution2)dte.Solution;
string csTemplatePath;
string vbTemplatePath;
string csPrjPath = "C:\\UserFiles\\kempb\\addins\\MyCSProject";
string vbPrjPath = "C:\\UserFiles\\kempb\\addins\\MyVBProject";
// Get the project template path for a C# console project.
// Console Application is the template name that appears in
// the right pane. "CSharp" is the Language(vstemplate) as seen
// in the registry.
csTemplatePath = soln.GetProjectTemplate("ConsoleApplication.zip",
"CSharp");
System.Windows.Forms.MessageBox.Show("C# template path: " +
csTemplatePath);
// Get the project template path for a Visual Basic console
// project.
// "vbproj: is the DefaultProjectExtension as seen in the
// registry.
vbTemplatePath = soln.GetProjectTemplate("ConsoleApplication.zip",
"vbproj");
System.Windows.Forms.MessageBox.Show("Visual Basic template path: " +
vbTemplatePath);
// Create a new C# console project using the template obtained
// above.
soln.AddFromTemplate(csTemplatePath, csPrjPath, "New CSharp
Console Project", false);
// Create a new Visual Basic console project using the template
// obtained above.
soln.AddFromTemplate(vbTemplatePath, vbPrjPath, "New VB Console
Project", false);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show("ERROR: " + ex.Message);
}
}
参照
処理手順
方法 : オートメーション オブジェクト モデルのコード例をコンパイルおよび実行する
概念
Visual Basic および Visual C# のプロジェクトの操作