我在尝试使用 C# 控制台应用程序构建我的 ASP.Net 解决方案时遇到此错误:
MSBUILD : warning MSB4056: The MSBuild engine must be called on a single-threaded-apartment. Current threading model is "MTA". Proceeding, but some tasks may not function correctly.
这是我的代码:
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");
最佳答案
只需用 [STAThread]
修饰 main 方法。
也就是说,如果您可以执行调用 COM 方法的任务,则可能会导致唯一的问题。换句话说,忽略它通常是安全的。
关于c# - 警告 MSB4056 : The MSBuild engine must be called on a single-threaded-apartment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15239507/