我试过这段代码,其中proj\chancher2.sln
是我正在尝试构建的另一个解决方案文件的路径。
private void button1_Click(object sender, EventArgs e)
{
try
{
string projectFileName = @"proj\chancher2.sln";
ProjectCollection pc = new ProjectCollection();
Dictionary<string, string> GlobalProperty = new Dictionary<string, string>();
GlobalProperty.Add("Configuration", "Debug");
GlobalProperty.Add("Platform", "x86");
//Here, we set the property
GlobalProperty.Add("OutputPath", @"D:\Output");
BuildRequestData BuidlRequest = new BuildRequestData(projectFileName, GlobalProperty, null, new string[] { "Build" }, null);
BuildResult buildResult = BuildManager.DefaultBuildManager.Build(new BuildParameters(pc), BuidlRequest);
}
catch (Exception E) {
MessageBox.Show(E.Message);
}
}
当我单击按钮时,我没有收到任何错误,但是当我转到Debug文件夹时,我找不到编译的可执行文件。当我转到D:\ Output文件夹时。什么都没有。
可执行文件在哪里。或者上面的代码中是否有任何错误?
任何帮助都将受到高度赞赏
答案 0 :(得分:0)
如果运行构建后输出目录仍为空,那么构建可能不成功。您可能需要查看BuildResult.OveralResult
才能看到。它将以简单的“失败/成功”枚举表示构建是否成功,如this MSDN article所示。
我没有太多以这种方式使用MSBuild的经验,但似乎从MSDN快速浏览一下,BuildResult会告诉你想要知道它失败的原因(如果确实失败了)。