2010-09-03 3 views
1

j'ai le code suivant pour construire un projet à partir d'une autre application C#:Passing MsBuild ligne de commande Arguments avec BuildEngine

var buildEngine = new Engine(); 

buildEngine.RegisterLogger(new ConsoleLogger()); 

var success = buildEngine.BuildProjectFile(pathToCsProjFile); 
if(!success) 
{ 
    Log.LogIt("On Noes! We Broke!"); 
} 
else 
{ 
    Log.LogIt("It Worked!!!!!!"); 
} 

Actuellement, il construit la configuration par défaut (débogage), mais je le veux construire la version. Si j'invoquait MsBuild de la ligne de commande que je ferais quelque chose comme:

C:\Windows\WinFX\v3.5>msbuild.exe *.proj /ToolsVersion:3.5 /p:Configuration=Release 

Comment puis-je passer ce commutateur de configuration du moteur de construction?

Répondre

3

Vous souhaitez définir la propriété, quelque chose comme ça devrait faire l'affaire:

var pathToCsProjFile = ""; 
var buildEngine = new Engine(); 
var project = new Project(buildEngine); 
project.Load(pathToCsProjFile); 
project.SetProperty("Configuration", "Release"); 

var success = project.Build(); 
2

Utilisez l'une des autres implémentations surchargées de BuildProjectFile. Je crois cela one. Créez un BuildPropertyGroup et ajoutez les propriétés souhaitées. Dans ce cas, « Configuration » = « Release »

Questions connexes