public virtual void PrepareBuild(string config, bool cleanBuild)
{
if (this.buildIsPrepared && !cleanBuild) return;
ProjectOptions options = this.GetProjectOptions(config);
string outputPath = Path.GetDirectoryName(options.OutputAssembly);
if (cleanBuild && this.currentConfig.Targets.ContainsKey(MsBuildTarget.Clean))
{
this.InvokeMsBuild(MsBuildTarget.Clean);
}
PackageUtilities.EnsureOutputPath(outputPath);
if (!String.IsNullOrEmpty(options.XmlDocFileName))
{
PackageUtilities.EnsureOutputPath(Path.GetDirectoryName(options.XmlDocFileName));
}
this.buildIsPrepared = true;
}