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

本文关键字:单线程 单元 调用 MSB4056 MSBuild 引擎 警告 | 更新日期: 2023-09-27 18:02:33

我得到这个错误,而试图建立我的ASP。. Net解决方案使用c#控制台应用程序:

MSBUILD:警告MSB4056: MSBUILD引擎必须在single-threaded-apartment。当前的线程模型是"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");

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

[STAThread]装饰main方法。

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