环境:如何在自定义生成任务中运行Project.Build()时获取生成输出,错误列表?
C#项目,Visual Studio 2008中,C#,.net 3.5的MSBuild
目的:为我的C#项目
跑我自己的自定义生成任务,并根据该平台(Soln配置平台),我在构建之前对Project对象进行一些操作。就像将BuildAction设置为EmbeddedResource等。
一旦完成,我打电话给Project.Build()
。我不想在GlobalEngine上使用Project对象,因为它会将文件标记为脏(并从TFS签出),一旦您修改了Project对象。
问题:
因为我用我自己的发动机的情况下,和项目,我不能够直接生成输出,错误VS.我只从Project.Build()
中得到一个布尔值。 我没有发现任何可以连接的事件,可以访问BuildErrorEventArgs
以及类似的东西。我知道我可以使用Log.LogErrorEvent()
将消息记录到VS错误列表中。但是我需要首先获得构建输出来实现这一点。
代码:
// Execute method in my custom build task class, derives from a BaseTask class
public override bool Execute()
{
Engine engine = new Engine();
Project project = new Project(engine);
project.Load(ProjectName);
Log.LogMessage(Microsoft.Build.Framework.MessageImportance.High, "Got the Project");
// Set the project's DefaultTargets to "Build" to be able to build with CSharp targets
project.DefaultTargets = "Build";
IsBuilt = project.Build(); // Isbuilt bool is a property in my BaseTask class
// Here's where I want to get Build output and direct it to VS output window and errorlist window
engine.Shutdown();
return base.Execute();
}