Share via


Solution2 インターフェイス

統合開発環境 (IDE: Integrated Development Environment) のすべてのプロジェクトとソリューション全体のプロパティを表します。

名前空間:  EnvDTE80
アセンブリ:  EnvDTE80 (EnvDTE80.dll 内)

構文

'宣言
<GuidAttribute("FA238614-FBB1-4314-A7F7-49AE8BB6C6BA")> _
Public Interface Solution2 _
    Inherits _Solution
[GuidAttribute("FA238614-FBB1-4314-A7F7-49AE8BB6C6BA")]
public interface Solution2 : _Solution
[GuidAttribute(L"FA238614-FBB1-4314-A7F7-49AE8BB6C6BA")]
public interface class Solution2 : _Solution
[<GuidAttribute("FA238614-FBB1-4314-A7F7-49AE8BB6C6BA")>]
type Solution2 =  
    interface 
        interface _Solution 
    end
public interface Solution2 extends _Solution

Solution2 型で公開されるメンバーは以下のとおりです。

プロパティ

  名前 説明
パブリック プロパティ AddIns AddIns コレクションを取得します。このコレクションには、ソリューションに関連付けられた現在使用できるすべてのアドインが含まれます。
パブリック プロパティ Count ソリューション内のプロジェクトの数を示す値を取得します。
パブリック プロパティ DTE トップレベルの機能拡張オブジェクトを取得します。
パブリック プロパティ Extender 要求された Extender オブジェクトがこのオブジェクトで利用できる場合はそれを取得します。
パブリック プロパティ ExtenderCATID オブジェクトの Extender カテゴリ ID (CATID) を取得します。
パブリック プロパティ ExtenderNames オブジェクトで使用できる Extender の一覧を取得します。
パブリック プロパティ FileName インフラストラクチャ。 マイクロソフト内部でのみ使用します。
パブリック プロパティ FullName オブジェクトのファイルの完全パスと名前を取得します。
パブリック プロパティ Globals Globals オブジェクトを取得します。このオブジェクトには、ソリューション ファイル (.sln)、プロジェクト ファイル、またはユーザーのプロファイル データに保存できる任意の変数値が含まれます。
パブリック プロパティ IsDirty インフラストラクチャ。 マイクロソフト内部でのみ使用します。
パブリック プロパティ IsOpen ソリューションが開いているかどうかを示す値を取得します。
パブリック プロパティ Parent Solution2 オブジェクトの直接の親オブジェクトを取得します。
パブリック プロパティ Projects 現在ソリューションに存在するプロジェクトのコレクションを取得します。
パブリック プロパティ Properties Solution2 オブジェクトに属するすべてのプロパティのコレクションを取得します。
パブリック プロパティ Saved ソリューションが最後に保存したか開いたときから変更されていないかどうかを示す値を取得または設定します。
パブリック プロパティ SolutionBuild ソリューション レベルでのビルド オートメーション モデルのルート オブジェクトを表す、ソリューションの SolutionBuild オブジェクトを取得します。
パブリック プロパティ TemplatePath GetProjectTemplate に置き換えられています。

このページのトップへ

メソッド

  名前 説明
パブリック メソッド AddFromFile システムに既に格納されているプロジェクト ファイルに基づいたソリューションにプロジェクトを追加します。
パブリック メソッド AddFromTemplate 既存のプロジェクト ファイルと、プロジェクト ファイルに含まれるすべての項目やサブディレクトリを指定の場所にコピーし、ソリューションに追加します。
パブリック メソッド AddSolutionFolder ソリューション フォルダーを ProjectItems コレクションに追加します。
パブリック メソッド Close 現在のソリューションを閉じます。
パブリック メソッド Create 指定された名前で指定されたディレクトリに空のソリューションを作成します。
パブリック メソッド FindProjectItem プロジェクト内で項目の位置を探します。
パブリック メソッド GetEnumerator コレクション内の項目の列挙を返します。
パブリック メソッド GetProjectItemTemplate 指定したプロジェクト項目テンプレートのパスを返します。
パブリック メソッド GetProjectTemplate 指定されたプロジェクト テンプレートのパスを返します。テンプレートが RequiredFrameworkVersion の要素が 4.0 以上ある場合、テンプレートの検索で一致を見つけるように呼び出しのバージョンを指定します。たとえば、GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip", "CSharp")を呼び出す代わりに; 呼び出し GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip|FrameworkVersion=4.5", "CSharp");。
パブリック メソッド Item Projects コレクションのインデックス付きメンバーを返します。
パブリック メソッド Open 指定されたソリューションを開きます。
パブリック メソッド ProjectItemsTemplatePath GetProjectItemTemplate に置き換えられています。
パブリック メソッド Remove 指定されたプロジェクトをソリューションから削除します。
パブリック メソッド SaveAs ソリューションを保存します。

このページのトップへ

解説

このインターフェイスには、IDE の現在のインスタンスに存在するすべてのプロジェクトと、ビルド構成などのソリューション全体のすべてのプロパティから構成されるコレクションが含まれます。 これには、ラップ プロジェクト、サブプロジェクト、トップ レベルのプロジェクトのいずれであるかに関係なく、すべてのプロジェクトのプロジェクト要素が含まれます。

DTE.Solution プロパティを使用して、オープンなソリューションを確認できます。 MiscFiles や SolutionItems などの仮想プロジェクトを参照するには、Solution.Item(EnvDTE.Constants.vsProjectKindMisc または Solution.Item(EnvDTE.Constants.vsProjectKindSolutionItems を使用します。

このアドイン コードの実行方法については、「方法 : オートメーション オブジェクト モデルのコード例をコンパイルおよび実行する」を参照してください。

次のコードは、指定したパスに新しいコンソール アプリケーション ソリューションを作成します。

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)
    SolutionExample(_applicationObject)
End Sub

Sub SolutionExample(ByVal dte As DTE2)
    ' This function creates a solution and adds a Visual Basic Console
    ' project to it.
    Try
        Dim soln As Solution2 = CType(DTE.Solution, Solution2)
        Dim vbTemplatePath As String
        ' This path must exist on your computer.
        ' Replace <file path> below with an actual path.
        Dim vbPrjPath As String = <file path>
        MsgBox("starting")
        ' Get the project template path for a Visual Basic console application project.
        vbTemplatePath = soln.GetProjectTemplate _
        ("ConsoleApplication.zip", "VisualBasic")
        ' Create a new Visual Baic Console project using the template obtained 
        ' above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath, _
        "New Visual Basic Console Project", False)
        MsgBox("done")
    Catch ex As System.Exception
        MsgBox(ex.ToString)
    End Try
End Sub
//you will need to add this reference to your project as well
using System.Windows.Forms;  

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.
    SolutionExample((DTE2)_applicationObject);
}

public void SolutionExample(DTE2 dte)
{
    // This function creates a solution and adds a Visual C# Console
    // project to it.
    try{
        Solution2 soln = (Solution2)_applicationObject.Solution;
        String csTemplatePath;
        // The file path must exist on your computer.
        // Replace <file path> below with an actual path.
        String csPrjPath = <file path>;
    MessageBox.Show("Starting...");
csTemplatePath = 
soln.GetProjectTemplate("ConsoleApplication.zip", "CSharp");
        // Create a new C# Console project using the template obtained 
        // above.
        soln.AddFromTemplate(csTemplatePath, csPrjPath,
 "New CSharp Console Project", false);
        MessageBox.Show("Done!");
    }
    catch(SystemException ex)
    {
        MessageBox.Show("ERROR: " + ex);
    }
}

参照

関連項目

EnvDTE80 名前空間