다음을 통해 공유


SolutionBuild2 인터페이스

빌드 자동화 모델의 루트를 솔루션 수준에서 표시합니다.

네임스페이스:  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 형식에서는 다음과 같은 멤버를 노출합니다.

속성

  이름 설명
Public 속성 ActiveConfiguration 현재 활성 SolutionConfiguration 개체를 가져옵니다.
Public 속성 BuildDependencies 프로젝트의 종속 관계를 지정할 수 있는 BuildDependencies 컬렉션을 가져옵니다.
Public 속성 BuildState 현재 환경 세션에서 빌드가 시작되었는지, 빌드가 현재 진행 중인지 또는 빌드가 완료되었는지 등 빌드 상태를 가져옵니다.
Public 속성 DTE 최상위 확장성 개체를 가져옵니다.
Public 속성 LastBuildInfo 빌드되지 못한 프로젝트 수를 가져옵니다.
Public 속성 LastPublishInfo 성공적으로 게시된 항목의 수를 가져옵니다.
Public 속성 Parent SolutionBuild 개체의 직계 부모를 가져옵니다.
Public 속성 PublishState 게시 작업의 상태를 가져옵니다.
Public 속성 SolutionConfigurations SolutionConfiguration 개체의 컬렉션을 가져옵니다.
Public 속성 StartupProjects 응용 프로그램의 진입점인 프로젝트의 이름을 가져오거나 설정합니다.

위쪽

메서드

  이름 설명
Public 메서드 Build 활성 솔루션 구성이 빌드를 시작합니다.
Public 메서드 BuildProject 지정된 솔루션 구성에서 지정된 프로젝트와 해당 종속성을 빌드합니다.
Public 메서드 Clean 표시된 프로젝트에 대한 컴파일러 생성 지원 파일을 모두 삭제합니다.
Public 메서드 Debug 솔루션 디버깅을 시작합니다.
Public 메서드 Deploy 배포하도록 표시된 활성 솔루션 구성의 각 프로젝트를 모두 배포합니다.
Public 메서드 DeployProject 프로젝트를 배포합니다.
Public 메서드 Publish 게시 작업을 시작합니다.
Public 메서드 PublishProject 프로젝트를 게시합니다.
Public 메서드 Run 활성 솔루션 구성을 실행합니다.

위쪽

설명

SolutionBuild 개체는 모든 솔루션 구성과 해당 속성, 프로젝트 빌드 종속성 및 시작 프로젝트에 대한 액세스를 제공합니다.

프로젝트 및 항목 수준에서 SolutionBuild 개체에 상응하는 개체는 ConfigurationManager 개체입니다.

예제

이 예제에서는 첫 번째 솔루션 구성 항목을 "release"로 설정한 다음 솔루션을 빌드합니다. 이 추가 기능을 실행하기 전에 Visual Studio IDE(통합 개발 환경)에서 프로젝트를 엽니다.

이 예제를 추가 기능으로 실행하는 방법에 대한 자세한 내용은 방법: 자동화 개체 모델 코드의 예제 컴파일 및 실행을 참조하십시오.

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 네임스페이스