共用方式為


Solution3 介面

代表整合式開發環境 (IDE) 中所有的專案和適用整個方案的屬性。 取代 SolutionSolution2

命名空間:  EnvDTE90
組件:  EnvDTE90 (在 EnvDTE90.dll 中)

語法

'宣告
<GuidAttribute("DF23915F-FDA3-4DD5-9CAA-2E1372C2BB16")> _
Public Interface Solution3 _
    Inherits Solution2
[GuidAttribute("DF23915F-FDA3-4DD5-9CAA-2E1372C2BB16")]
public interface Solution3 : Solution2
[GuidAttribute(L"DF23915F-FDA3-4DD5-9CAA-2E1372C2BB16")]
public interface class Solution3 : Solution2
[<GuidAttribute("DF23915F-FDA3-4DD5-9CAA-2E1372C2BB16")>]
type Solution3 =  
    interface 
        interface Solution2 
    end
public interface Solution3 extends Solution2

Solution3 類型會公開下列成員。

屬性

  名稱 描述
公用屬性 AddIns 取得 AddIns 集合,包含目前所有與方案關聯的可用增益集。
公用屬性 Count 取得數值,指出方案中專案的數目。
公用屬性 DTE 取得最上層的擴充性物件。
公用屬性 Extender 取得要求的擴充項物件 (如果適用於這個物件)。
公用屬性 ExtenderCATID 取得物件的擴充項分類 ID (CATID)。
公用屬性 ExtenderNames 取得物件的可用擴充項清單。
公用屬性 FileName 基礎架構。 取得檔案名稱。
公用屬性 FullName 取得物件檔案的完整路徑和名稱。
公用屬性 Globals 取得 Globals 物件,此物件包含可能儲存在方案檔 (.sln)、專案檔,或使用者設定檔資料中的任何變數值。
公用屬性 IsDirty 基礎架構。 決定方案是否已經變更 (已修改但未儲存)。
公用屬性 IsOpen 取得值,這個值表示方案是否開啟。
公用屬性 Parent 取得 Solution2 物件的直屬父物件。
公用屬性 Projects 取得方案中目前專案的集合。
公用屬性 Properties 取得與 Solution2 物件有關的所有屬性集合。
公用屬性 Saved 取得或設定值,指出方案是否自從上次存檔或開啟後就未被修改過。
公用屬性 SolutionBuild 取得方案的 SolutionBuild 物件,它代表方案層級之組建 Automation 模型的根物件。
公用屬性 TemplatePath 已由 GetProjectTemplate 取代。

回頁首

方法

  名稱 描述
公用方法 AddFromFile 根據已經儲存於系統中的專案檔,將專案加入至方案。
公用方法 AddFromTemplate 將現有的專案檔及其所包含的一切項目或子目錄,複製至指定的位置並加入至方案中。
公用方法 AddSolutionFolder 將方案資料夾加入至 ProjectItems 集合。
公用方法 Close 關閉目前的方案。
公用方法 Create 以指定名稱在指定目錄中建立空白方案。
公用方法 FindProjectItem 尋找專案中的項目。
公用方法 GetEnumerator 傳回列舉集合中的項目。
公用方法 GetProjectItemTemplate 傳回指定專案項目範本的路徑。
公用方法 GetProjectItemTemplates 傳回指定之專案的專案項目範本集合。
公用方法 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 儲存方案。

回頁首

備註

Solution3 物件是 IDE 目前執行個體中所有專案,以及所有適用整個方案之屬性 (例如組建組態) 的集合。 不論專案是包裝專案、子專案或最上層專案,Solution3 物件都會包含每個專案的專案項目。

請使用 DTE.Solution 參考這個物件。 若要參考如 MiscFiles 或 SolutionItems 的虛擬專案,請使用 Solution3.Item(EnvDTE.Constants.vsProjectKindMisc) 或 Solution3.Item(EnvDTE.Constants.vsProjectKindSolutionItems)。

範例

如需如何執行增益集程式碼的詳細資訊,請參閱 如何:編譯和執行 Automation 物件模型程式碼範例

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

Sub Solution3Example(ByVal dte As DTE2)
    ' This function creates a solution and adds a Visual C# Console
    ' project to it.
    Try
        Dim soln As Solution3 = CType(DTE.Solution, Solution3)
        Dim csTemplatePath As String
        ' This path must exist on your computer.
        ' Replace <file path> below with an actual path.
        Dim csPrjPath As String = "<file path>"
        MsgBox("starting")
        ' Get the project template path for a C# console project.
        csTemplatePath = CType(soln.GetProjectTemplate _
        ("ConsoleApplication.zip", "CSharp"), string)
        ' Create a new C# Console project using the template obtained 
        ' above.
        soln.AddFromTemplate(csTemplatePath, csPrjPath, _
        "New CSharp Console Project", False)
        MsgBox("done")
    Catch ex As System.Exception
        MsgBox(ex.ToString)
    End Try
End Sub
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.
    Solution3Example((DTE2)_applicationObject);
}

public void Solution3Example(DTE2 dte)
{
    // This function creates a solution and adds a Visual C# Console
    // project to it.
    try{
        Solution3 soln = (Solution3)_applicationObject.Solution;
        String csTemplatePath;
        // The file path must exist on your computer.
        // Replace <file path> below with an actual path.
        String csPrjPath = "<file path>";
        "<file path>MessageBox.Show("Starting...");
        "<file path>"<file path>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);
    }
}

請參閱

參考

EnvDTE90 命名空間