#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

46 lines
1.1 KiB

// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <author name="Daniel Grunwald"/>
// <version>$Revision$</version>
// </file>
using System;
using Microsoft.Build.BuildEngine;
using Microsoft.Build.Framework;
namespace ICSharpCode.SharpDevelop.BuildWorker
{
sealed class MSBuildWrapper
{
public void Cancel()
{
}
readonly Engine engine;
public MSBuildWrapper()
{
engine = new Engine(ToolsetDefinitionLocations.Registry | ToolsetDefinitionLocations.ConfigurationFile);
}
public bool DoBuild(BuildJob job, ILogger logger)
{
engine.RegisterLogger(logger);
Program.Log("Building target '" + job.Target + "' in " + job.ProjectFileName);
string[] targets = job.Target.Split(';');
BuildPropertyGroup globalProperties = new BuildPropertyGroup();
foreach (var pair in job.Properties) {
globalProperties.SetProperty(pair.Key, pair.Value, true);
}
try {
return engine.BuildProjectFile(job.ProjectFileName, targets, globalProperties);
} finally {
engine.UnregisterAllLoggers();
}
}
}
}