Share via


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 类型公开以下成员。

属性

  名称 说明
公共属性 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) 中打开项目。

有关如何作为外接程序运行此示例的更多信息,请参见 如何:编译和运行自动化对象模型代码示例

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 命名空间