次の方法で共有


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

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

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

[!メモ]

実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。ここに記載されている手順は、全般的な開発設定が適用されているものとして記述されています。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「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 10\Common7\IDE\ProjectTemplates\Language に格納されています。

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

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

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

    および

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

    8dot3 形式ではなく長いファイル名を使用するようにします。詳細については、「Creating Project and Item Templates」を参照してください。

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

            Dim vbTemplatePath As String
            Dim vbProjectPath As String
            vbProjectPath = "C:\UserFiles\MyFiles\MyProject"
            vbTemplatePath = soln.GetProjectTemplate( _
              "WindowsApplication.zip", "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 _
           ("WindowsApplication.zip", "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 アプリケーションを表示します。

参照

処理手順

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

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

その他の技術情報

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

Migrating Code that Creates Projects by Using Templates

Creating Project and Item Templates