我目前正在尝试使用Microsoft.Build.Execution.BuildManagerC#winForms应用程序中的C++解决方案.
从其他帖子我得到了以下代码,它使用了一个Logger,所以我可以看到一些输出.该BuildSubmission.BuildResult.OverallResult是试图建立一个C++应用程序时,总是失败.
string projectFileName = "mySolution.sln";
ProjectCollection pc = new ProjectCollection();
Dictionary<string, string> GlobalProperty = new Dictionary<string, string>();
GlobalProperty.Add("Configuration", "Release");
GlobalProperty.Add("Platform", "Win32");
BuildParameters bp = new BuildParameters(pc);
bp.Loggers = new[] {
new ConsoleLogger
{
Verbosity = LoggerVerbosity.Minimal,
ShowSummary = true,
SkipProjectStartedText = true
}
};
BuildManager.DefaultBuildManager.BeginBuild(bp);
BuildRequestData BuildRequest = new BuildRequestData(projectFileName, GlobalProperty, null, new string[] { "Clean" }, null);
BuildSubmission BuildSubmission = BuildManager.DefaultBuildManager.PendBuildRequest(BuildRequest);
BuildSubmission.Execute();
BuildManager.DefaultBuildManager.EndBuild();
if (BuildSubmission.BuildResult.OverallResult == BuildResultCode.Failure)
{
throw new Exception();
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我得到以下输出:
C:\ …