SolutionBuild2.BuildProject 方法 (String, String, Boolean)
在指定解决方案配置的上下文中生成指定的项目及其依赖项。
命名空间: EnvDTE80
程序集: EnvDTE80(在 EnvDTE80.dll 中)
语法
声明
Sub BuildProject ( _
SolutionConfiguration As String, _
ProjectUniqueName As String, _
WaitForBuildToFinish As Boolean _
)
void BuildProject(
string SolutionConfiguration,
string ProjectUniqueName,
bool WaitForBuildToFinish
)
void BuildProject(
String^ SolutionConfiguration,
String^ ProjectUniqueName,
bool WaitForBuildToFinish
)
abstract BuildProject :
SolutionConfiguration:string *
ProjectUniqueName:string *
WaitForBuildToFinish:bool -> unit
function BuildProject(
SolutionConfiguration : String,
ProjectUniqueName : String,
WaitForBuildToFinish : boolean
)
参数
- SolutionConfiguration
类型:System.String
必选。新解决方案配置的名称,此解决方案配置提供生成项目的上下文。
- ProjectUniqueName
类型:System.String
必选。要生成的项目。
- WaitForBuildToFinish
类型:System.Boolean
可选。确定是否等待生成完成。如果为 true,则它等待;否则不等待。
实现
SolutionBuild.BuildProject(String, String, Boolean)
备注
BuildProject 立即返回。 要确定解决方案生成操作何时完成,必须检查 OnBuildDone 事件。
BuildProject 在更改活动解决方案配置或选定的项目方面不影响用户界面 (UI)。 如果要生成与活动解决方案配置相关的项目,请使用 DTE.SolutionBuild.ActiveConfiguration.Name。
BuildProject 确实影响基于 DTE.SuppressUI 标志的 UI,原因在于状态栏的闪烁以及**“输出窗口”和“任务列表”**总是被更新。
BuildProject 生成指定的项目及其处于选中状态的所有依赖项,这些依赖项将在指定的解决方案配置中生成。
示例
此示例在调试模式下生成项目。 在运行此外接程序之前,在 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)
SolutionBuildProjectExample(_applicationObject)
End Sub
Sub SolutionBuildProjectExample(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
Dim p1 As Project = soln.Projects.Item(1)
sb = CType(soln.SolutionBuild, SolutionBuild2)
bld = sb.BuildDependencies
MsgBox("The project " & bld.Item(1).Project.Name & " has " _
& bld.Count.ToString() & " build dependencies.")
MsgBox("Building the project in debug mode...")
sb.BuildProject("Debug", p1.FullName, True)
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;
SolutionBuildProjectExample(_applicationObject);
}
public void SolutionBuildProjectExample(DTE2 dte)
{
try
{
Solution2 soln = (Solution2)_applicationObject.Solution;
SolutionBuild2 sb;
BuildDependencies bld;
Project p1 = soln.Projects.Item(1);
// 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("Building the project in debug mode...");
sb.BuildProject("Debug", p1.FullName,true);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。