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

3

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

MSBUILD:警告MSB4056:必须在单线程公寓上调用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");

发布为答案。很高兴能帮助到您。 - leppie
1个回答

1

只需在主方法上使用[STAThread]进行装饰。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接