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 | (继承自 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) 中打开项目。
有关如何作为外接程序运行此示例的更多信息,请参见 如何:编译和运行自动化对象模型代码示例。
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);
}
}