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 | 取得目前現用的 SolutionConfiguration 物件。 | |
BuildDependencies | 取得 BuildDependencies 集合,此集合可指定哪些專案相依哪些其他專案。 | |
BuildState | 取得目前的環境工作階段是否曾經開始組建、是否有組建正在進行中、是否有組建已完成。 | |
DTE | 取得最上層的擴充性物件。 | |
LastBuildInfo | 取得建置失敗的專案數目。 | |
LastPublishInfo | 取得發行成功的項目數目。 | |
Parent | 取得 SolutionBuild 物件的直屬父物件。 | |
PublishState | 取得發行作業的狀態。 | |
SolutionConfigurations | 取得 SolutionConfiguration 物件的集合。 | |
StartupProjects | 取得或設定做為應用程式進入點的專案名稱。 |
回頁首
方法
名稱 | 描述 | |
---|---|---|
Build | 造成使用中的方案組態開始建置。 | |
BuildProject | 在指定的方案組態內容中,建置指定的專案及其相依性。 | |
Clean | 標記的專案中,編譯器產生的支援檔案全部刪除。 | |
Debug | 開始方案偵錯。 | |
Deploy | 讓每一個標記為部署的專案 (現用方案組態中) 進行部署。 | |
DeployProject | 部署專案。 | |
Publish | 啟始發行作業。 | |
PublishProject | 發行某一專案。 | |
Run | 讓使用中的方案組態開始執行。 |
回頁首
備註
SolutionBuild 物件可用以存取所有的方案組態和組態的屬性、專案組建的相依性、啟始專案等。
SolutionBuild 物件在專案和項目層級所對應的是 ConfigurationManager 物件。
範例
這個範例中,會將第一個方案組態項目設為 "release",然後建置該方案。 執行這個增益集之前,先開啟 Visual Studio 整合式開發環境 (IDE) 中的專案。
如需如何像執行增益集一般,執行這個範例的詳細資訊,請參閱 如何:編譯和執行 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);
}
}