SolutionBuild2 介面

代表方案層級的建置自動化模型的根 (Root)。

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

語法

'宣告
<GuidAttribute("C2516E4B-5D69-459D-B539-C95A71C4FA3D")> _
Public Interface SolutionBuild2 _
    Inherits SolutionBuild
[GuidAttribute("C2516E4B-5D69-459D-B539-C95A71C4FA3D")]
public interface SolutionBuild2 : SolutionBuild
[GuidAttribute(L"C2516E4B-5D69-459D-B539-C95A71C4FA3D")]
public interface class SolutionBuild2 : SolutionBuild
[<GuidAttribute("C2516E4B-5D69-459D-B539-C95A71C4FA3D")>]
type SolutionBuild2 =  
    interface
        interface SolutionBuild
    end
public interface SolutionBuild2 extends SolutionBuild

SolutionBuild2 型別會公開下列成員。

屬性

  名稱 說明
公用屬性 ActiveConfiguration (繼承自 SolutionBuild)。
公用屬性 ActiveConfiguration 取得目前現用的 SolutionConfiguration 物件。
公用屬性 BuildDependencies (繼承自 SolutionBuild)。
公用屬性 BuildDependencies 取得 BuildDependencies 集合,此集合可指定哪些專案相依哪些其他專案。
公用屬性 BuildState (繼承自 SolutionBuild)。
公用屬性 BuildState 取得目前的環境工作階段是否曾經開始組建、是否有組建正在進行中、是否有組建已完成。
公用屬性 DTE (繼承自 SolutionBuild)。
公用屬性 DTE 取得最上層的擴充性物件。
公用屬性 LastBuildInfo (繼承自 SolutionBuild)。
公用屬性 LastBuildInfo 取得建置失敗的專案數目。
公用屬性 LastPublishInfo 取得發行成功的項目數目。
公用屬性 Parent (繼承自 SolutionBuild)。
公用屬性 Parent 取得 SolutionBuild 物件的直屬父物件。
公用屬性 PublishState 取得發行作業的狀態。
公用屬性 SolutionConfigurations (繼承自 SolutionBuild)。
公用屬性 SolutionConfigurations 取得 SolutionConfiguration 物件的集合。
公用屬性 StartupProjects (繼承自 SolutionBuild)。
公用屬性 StartupProjects 取得或設定做為應用程式進入點的專案名稱。

回頁首

方法

  名稱 說明
公用方法 Build(Boolean) (繼承自 SolutionBuild)。
公用方法 Build(Boolean) 造成使用中的方案組態開始建置。
公用方法 BuildProject(String, String, Boolean) (繼承自 SolutionBuild)。
公用方法 BuildProject(String, String, Boolean) 在指定的方案組態內容中,建置指定的專案及其相依性。
公用方法 Clean(Boolean) (繼承自 SolutionBuild)。
公用方法 Clean(Boolean) 標記的專案中,編譯器產生的支援檔案全部刪除。
公用方法 Debug() (繼承自 SolutionBuild)。
公用方法 Debug() 開始方案偵錯。
公用方法 Deploy(Boolean) (繼承自 SolutionBuild)。
公用方法 Deploy(Boolean) 讓每一個標記為部署的專案 (現用方案組態中) 進行部署。
公用方法 DeployProject 部署專案。
公用方法 Publish 啟始發行作業。
公用方法 PublishProject 發行某一專案。
公用方法 Run() (繼承自 SolutionBuild)。
公用方法 Run() 讓使用中的方案組態開始執行。

回頁首

備註

SolutionBuild 物件可用以存取所有的方案組態和組態的屬性、專案組建的相依性、啟始專案等。

SolutionBuild 物件在專案和項目層級所對應的是 ConfigurationManager 物件。

範例

這個範例中,會將第一個方案組態項目設為 "release",然後建置該方案。執行這個增益集之前,先開啟 Visual Studio 整合式開發環境 (IDE) 中的專案。

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

Imports EnvDTE
Imports EnvDTE80
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)
    SolutionBuild2BuildExample(_applicationObject)
End Sub
Sub SolutionBuild2BuildExample(ByVal dte As DTE2)
    ' Open a solution in Visual Studio before running this example.
    Try
        Dim soln As Solution2 = CType(_applicationObject.Solution, _
        Solution2)
        Dim sb As SolutionBuild2
        Dim bld As BuildDependencies
        sb = CType(soln.SolutionBuild, SolutionBuild2)
        bld = sb.BuildDependencies
        MsgBox("The project " & bld.Item(1).Project.Name & " has "  _
        & bld.Count.ToString() & " build dependencies.")
        MsgBox("Set the configuration to release and build...")
        sb.SolutionConfigurations.Item("Release").Activate()
        sb.Build()
    Catch ex As System.Exception
        MsgBox(ex.ToString)
    End Try
End Sub
using EnvDTE;
using EnvDTE80;
using System.Windows.Forms;
public void OnConnection(object application, 
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    SolutionBuild2BuildExample(_applicationObject);
}
public void SolutionBuild2BuildExample(DTE2 dte)
{
    try
    {
        Solution2 soln = (Solution2)_applicationObject.Solution;
        SolutionBuild2 sb;
        BuildDependencies bld;
        // Open a solution in Visual Studio before 
        // running this example.
        sb = (SolutionBuild2)soln.SolutionBuild;
        bld = sb.BuildDependencies;
        MessageBox.Show("The project " + bld.Item(1).Project.Name 
+ " has " + bld.Count.ToString() + " build dependencies.");
        MessageBox.Show("Set the configuration to release 
and build...");
        sb.SolutionConfigurations.Item("Release").Activate();
        sb.Build(true);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

請參閱

參考

EnvDTE80 命名空間