J'ai une solution avec beaucoup de dossiers de solutions avec beaucoup de projets c # à l'intérieur.
Comment puis-je créer/reconstruire un seul de ces projets à partir de la ligne de commande?
Je suppose qu'il existe un moyen de le faire en utilisant msbuild
mais je ne sais rien de msbuild.
Merci!
Vous pouvez simplement appeler msbuild
et lui passer le fichier de projet .csproj/.vbproj que vous voulez construire, et il ne fera que celui-là.
Donc quelque chose comme:
cd \MySolution
msbuild .\Project1\Project1.csproj
Étant donné un fichier de solution contenant des projets et que vous souhaitez 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 de bas en haut. 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 tenaient pas compte des dépendances. Bien sûr, msbuild.exe créera un seul fichier de projet (c'est-à-dire foo.vcxproj), mais il échouerait si bar et baz n'étaient pas encore construits. Afin de construire plusieurs projets et d'obtenir les projets indépendants construits d'abord, vous devez passer dans le fichier de solution (Après tout, l'OP a mentionné que cela faisait partie d'un fichier de solution). Passez ensuite le nom du projet et une cible délimitée par deux points.
MSBuild mysolution.sln /target:foo:Rebuild
Grande hypothèse ici. Je suppose que le nom du projet $ (ProjectName) correspond à celui du nom de fichier.
Edit (from comment ) : S'il vous arrive d'avoir des points (.) Dans le nom du projet, vous devrez remplacez-les par un trait de soulignement (_).
Vous pouvez consulter la référence this 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
Publication en tant qu'information pour les futurs demandeurs
définir MSBuildEmitSolution = 1