public static NAnt.MSBuild.BuildEngine.Engine CreateMSEngine(NAnt.VSNet.Tasks.SolutionTask solutionTask)
{
if (_msbuild != null)
{
return(_msbuild);
}
try {
_msbuild = NAnt.MSBuild.BuildEngine.Engine.LoadEngine(solutionTask.Project.TargetFramework);
} catch (Exception e) {
throw new BuildException(
String.Format(
"MSBuild v{0} can't be found. It is needed for building MSBuild projects. VS2005 and later is using MSBuild projects for C# and VB",
solutionTask.Project.TargetFramework.Version),
Location.UnknownLocation, e);
}
_msbuild.UnregisterAllLoggers();
NAntLoggerVerbosity _verbosity = solutionTask.Verbose ? NAntLoggerVerbosity.Normal : NAntLoggerVerbosity.Minimal;
NAntLogger _logger = NAntLogger.Create(solutionTask.Project.TargetFramework, solutionTask, _verbosity, _msbuild);
if (_logger != null)
{
_msbuild.RegisterLogger(_logger);
}
solutionTask.Log(Level.Verbose, "Using MSBuild version {0}.", FileVersionInfo.GetVersionInfo(_msbuild.Assembly.Location).ProductVersion);
return(_msbuild);
}