警告MSB4056:必须在单线程单元上调用MSBuild引擎

时间:2013-03-06 05:16:31

标签: c# msbuild

尝试使用C#控制台应用程序构建我的ASP.Net解决方案时出现此错误:

  

MSBUILD:警告MSB4056:必须在a上调用MSBuild引擎   单线程的公寓。当前的线程模型是“MTA”。   继续,但某些任务可能无法正常运行。

这是我的代码:

Engine engine = new Engine();
engine.BinPath = @"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319";

FileLogger logger = new FileLogger();
logger.Parameters = @"logfile=C:\temp\build.log";
engine.RegisterLogger(logger);

bool success = engine.BuildProjectFile(ConfigurationSettings.AppSettings["ProjectPath"]);

engine.UnregisterAllLoggers();
if (success)
    Console.WriteLine("Build succeeded.");
else
    Console.WriteLine(@"Build failed. View C:\temp\build.log for details");

1 个答案:

答案 0 :(得分:1)

使用[STAThread]装饰主方法。

也就是说,如果您可以调用COM方法的任务,那么唯一可能导致的问题。换句话说,忽略它通常是安全的。