Lorsque Visual Studio exécute une génération, il exécute MSBuild pour effectuer la majorité du travail. Si vous transmettez le fichier .sln à MSBuild, avec les propriétés de configuration et de plate-forme appropriées, il créera votre solution de la même manière que Visual Studio le ferait.
msbuild mysolution.sln /p:Configuration=Release /p:Platform="Any CPU"
Cependant, il y a il y a différences: parfois, une génération génère une erreur via MSBuild et non via Visual Studio, ou vice-versa.
Quels paramètres Visual Studio passe-t-il dans MSBuild pour influencer le processus? Existe-t-il un moyen de voir les paramètres qu'il transmet lors de l'exécution d'une build?
Visual Studio n'exécute pas MSBuild.exe
, mais héberge le moteur de construction lui-même (au moyen du Microsoft.Build.*
assemblies) - du moins c'est le cas pour le système de projet C # par défaut. D'autres langues, compléments, packages, etc. peuvent le faire différemment.
En fait, il y avait une série d'articles sur les blogs Microsoft à ce sujet, j'essaie de les trouver et de mettre à jour cette réponse.
[~ # ~] mise à jour [~ # ~] : Je l'ai retrouvé. Recherchez les messages "MSBuild dans Visual Studio" ici .
Concernant votre question d'origine, this page pourrait vous aider davantage. Vous pouvez également aller dans "Outils", "Options", "Projets et solutions", "Créer et exécuter" et augmenter la verbosité de la sortie MSBuild. Avec "Diagnostic", vous devriez voir essentiellement chaque propriété définie au démarrage de la construction.
Tout d'abord, vous pouvez exécuter msbuild avec le /v:diag
argument pour obtenir une journalisation au niveau du diagnostic. Cela peut vraiment aider à comprendre pourquoi une build échoue.
Sinon, oui, si vous utilisez Process Monitor , vous pouvez surveiller les événements de démarrage du processus où vous pouvez voir la ligne de commande spécifique envoyée au processus.
Plus précisément:
Operation
is
Process Create
" AjouterOperation
is
Process Start
" Ajouter