【发布时间】:2015-01-06 16:13:17
【问题描述】:
我正在尝试用 C# 构建一个 .sln。我有以下代码。
try
{
Console.WriteLine("Building Solution...\n");
string projectFileName = Directory.GetCurrentDirectory() + "\\build\\Solution.sln";
ProjectCollection pc = new ProjectCollection();
Dictionary<string, string> GlobalProperty = new Dictionary<string, string>();
GlobalProperty.Add("Configuration", "Release");
GlobalProperty.Add("Platform", "x86");
BuildRequestData BuidlRequest = new BuildRequestData(projectFileName, GlobalProperty, null, new string[] { "Build" }, null);
BuildResult buildResult = BuildManager.DefaultBuildManager.Build(new BuildParameters(pc), BuidlRequest);
catch (Exception e)
{
Console.Write("Error:" + e.Message);
Console.ReadLine();
}
Console.WriteLine("Completed Solution build...\nPress any key to continue...");
它没有错误,它确实显示Completed Solution build...,但我在\bin\Release 中找不到可执行文件。我是否忘记了什么或如何检查?
【问题讨论】:
-
您的解决方案是否定义了
x86平台?默认情况下,Visual C# 项目通常只定义Any CPU。 -
你可以是明确的:
GlobalProperty.Add("OutputPath", Directory.GetCurrentDirectory() + "\\MyOutput"); -
Any CPU和GlobalProperty.Add("OutputPath", Directory.GetCurrentDirectory() + "\\build\\Solution\\bin\\Release");没有任何区别。 -
就像,它没有构建任何东西......
-
那么您可能需要添加一个记录器并检查实际输出:stackoverflow.com/questions/9942499/…
标签: c# msbuild microsoft.build