2013-03-06 1 views
3

Je reçois cette erreur en essayant de construire ma solution ASP.Net en utilisant une application C# console:Attention MSB4056: Le moteur MSBuild doit être appelé un seul thread

MSBUILD: avertissement MSB4056: Le moteur MSBuild doit être appelé dans un appartement à un seul thread . Le modèle de filetage actuel est "MTA". Procédez, mais certaines tâches peuvent ne pas fonctionner correctement.

Ceci est mon code:

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"); 
+0

Merci beaucoup. ça a bien fonctionné :) –

+0

Posté comme une réponse. Heureux d'avoir pu aider. – leppie

Répondre

1

décorer la principale méthode avec [STAThread]. Cela dit, les seuls problèmes qui pourraient causer si vous pouvez des tâches qui appelle dans les méthodes COM. En d'autres termes, il est généralement prudent de l'ignorer.

Questions connexes