Construire un seul projet dans une solution en ligne de commande

J’ai une solution avec beaucoup de dossiers de solution avec beaucoup de projets c # à l’intérieur.

Comment créer / reconstruire un seul de ces projets à partir de la ligne de commande?

J’imagine qu’il y a un moyen de le faire en utilisant msbuild mais je ne connais rien à msbuild.

Merci!

Vous pouvez simplement appeler msbuild et lui transmettre le fichier de projet .csproj / .vbproj que vous voulez générer, et il ne le fera que.

Donc, quelque chose comme:

 cd \MySolution msbuild .\Project1\Project1.csproj 

Étant donné un fichier de solution contenant des projets, et que vous voulez créer / reconstruire un projet.

Cette page Web sur MSDN répertorie exactement ce que vous devez faire:

http://msdn.microsoft.com/en-us/library/ms171486.aspx

Donc, étant donné un fichier de solution mysolution.sln avec des projets:

  • foo.vcxproj
  • bar.vcxproj
  • baz.vcxproj

où ils dépendent tous les uns des autres dans l’ordre décroissant. Pour que baz soit le plus indépendant, bar dépend de baz et foo dépend de bar .

Si vous voulez construire foo alors vous faites:

 MSBuild mysolution.sln /target:foo 

Les autres réponses ici ne tiennent pas compte des dépendances. Certes, msbuild.exe construira un seul fichier de projet (par exemple, foo.vcxproj), mais il échouera si bar et baz ne sont pas encore générés. Pour construire plusieurs projets et obtenir les projets indépendants construits en premier, vous devez passer dans le fichier de solution (après que tout l’OP ait mentionné que cela faisait partie d’un fichier de solution). Ensuite, indiquez le nom du projet et une cible délimitée par deux points.

 MSBuild mysolution.sln /target:foo:Rebuild 

Grosse hypothèse ici. Je suppose que le nom du projet $ (ProjectName) correspond à celui du nom du fichier.

Modifier (à partir d’un commentaire ) : si vous avez des points (.) Dans le nom du projet, vous devrez les remplacer par un trait de soulignement (_).

Vous pouvez consulter cette référence pour en savoir plus sur l’utilisation de MSBuild à partir de la ligne de commande. Voici un exemple de ce dont vous avez besoin:

 MSBuild.exe MyProject.proj /t:rebuild 

Poster comme information pour les futurs demandeurs

set MSBuildEmitSolution = 1

https://stackoverflow.com/a/40372894/826862