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);
}
}