方法 : 機能拡張を使用して新しい Windows アプリケーションを作成する

更新 : 2007 年 11 月

新しいプロジェクトを作成して現在のソリューションに追加するには、汎用機能拡張の DTE.Solution オブジェクトの AddFromTemplate メソッドを使用します。このタスクは、マクロ統合開発環境 (IDE: Integrated Development Environment) にアクセスしてマクロ プロジェクトを作成する方法を知っていることを前提としています。詳細については、「マクロの使用による反復操作の自動化」を参照してください。

次の手順では、Visual Basic プロジェクトを作成します。Visual C# プロジェクトを作成するには、手順 4. で "CSharp" という文字列を使用します。また、Visual J# プロジェクトを作成するには、"JSharp" という文字列を使用します。

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

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

ソリューションに新しいプロジェクトを追加するには

  1. 新しいマクロ モジュールを作成し、NewProject という名前を付けます。

  2. モジュールに、NewWindowsProject という新しいマクロを追加します。

    Sub NewWindowsProject()
       ' Add code here to create new project.
    End Sub
    

    このマクロにより、新しい Visual Basic Windows アプリケーションが追加されます。

  3. コンソール プロジェクトに必要なテンプレートを選択します。次の表に示すように、いくつかの異なる種類のプロジェクトを作成できます。Windows アプリケーションの場合は、WindowsApplication.zip テンプレートを使用します。

    テンプレート名

    プロジェクトの種類

    ClassLibrary.zip

    クラス ライブラリ

    ConsoleApplication.zip

    コンソール アプリケーション

    EmptyProject.zip

    空のプロジェクト

    WebApplication.zip

    Web アプリケーション

    WebControl.zip

    Web コントロール

    WebService.zip

    Web サービス

    WindowsApplication.zip

    Windows アプリケーション

    WindowsControl.zip

    Windows コントロール

    WindowsService.zip

    Windows サービス

    テンプレートを使用するための構文は GetProjectTemplate("WindowsApplication.zip", "VisualBasic") です。アプリケーション固有のテンプレートにアクセスすることもできます。たとえば、GetProjectTemplate("PocketPC2003-ClassLibrary.zip", "CSharp") は、Pocket PC 2003 プロジェクト用の Visual C# クラス ライブラリのテンプレートを返します。すべての言語のプロジェクト テンプレートは、<drive>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\Language に格納されています。

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

    カスタム テンプレートには、次の場所で定義されたファイル名と競合しない一意のファイル名が必要です。

    • <drive>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\Language

    および

    • <drive>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates\Language

    (8dot3 形式ではなく) 長いファイル名をするようにします。詳細については、「プロジェクトと項目テンプレートの作成」を参照してください。

  4. GetProjectTemplate メソッドを使用し、プロジェクト テンプレートを指定します。テンプレートのパスは言語によって異なるため、Visual Basic テンプレートを取得するには、次に示すように、"Visual Basic" という文字列を使用します。Visual C# テンプレートの場合は "CSharp" という文字列を使用し、Visual J# テンプレートの場合は "JSharp" という文字列を使用します。

            Dim vbTemplatePath As String
            Dim vbProjectPath As String
            vbProjectPath = "C:\UserFiles\MyFiles\MyProject"
            vbTemplatePath = soln.GetProjectTemplate("Windows _
     Application", "VisualBasic")
    
  5. AddFromTemplate メソッドを呼び出します。

            ' Create a new solution.
            ' Make sure the filepath below exists
            ' on your computer.
            soln.Create("C:\UserFiles\MyFiles\MyProject", "MySolution")
            ' Create a new VB console project using the template
            ' obtained above.
            soln.AddFromTemplate(vbTemplatePath, vbProjectPath, _
            "VB Console Project", False)
    

    完成したマクロは次のようになります。

    Sub NewWindowsProject ()
            'This function creates a solution and adds a Visual Basic Console
            'project to it. 
            Dim soln As Solution2 = CType(DTE.Solution, Solution2)
            'Dim proj As Project
            Dim msg As String
            Dim vbTemplatePath As String
            Dim vbProjectPath As String
            vbProjectPath = "C:\UserFiles\MyFiles\MyProject"
            vbTemplatePath = soln.GetProjectTemplate _
           ("Windows Application", "VisualBasic")
    
            ' Create a new solution.
            ' Make sure the filepath below exists
            ' on your computer.
            soln.Create("C:\UserFiles\MyFiles\MyProject", "MySolution")
            ' Create a new VB console project using the template
            ' obtained above.
            soln.AddFromTemplate(vbTemplatePath, vbProjectPath, _
            "VB Windows Project", False)
            msg = "Created new solution: " & soln.FullName & vbCrLf
            msg = msg & "Created new project: " & soln.Projects.Kind()
            MsgBox(msg)
        End Sub
    
  6. マクロを保存して、マクロ IDE を閉じ、マクロ エクスプローラからマクロを実行します。

  7. ソリューション エクスプローラで、"MySolution" という新しいソリューションと "VB Windows Project" という Windows アプリケーションを表示します。

参照

処理手順

方法 : テンプレートを使用したプロジェクト作成コードを移行する

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

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

その他の技術情報

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

プロジェクトと項目テンプレートの作成