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:
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