web-dev-qa-db-fra.com

Quel est l'emplacement par défaut des journaux MSBuild?

J'utilise Visual Studio Express 2012. Où se trouve le fichier journal? J'ai effectué une recherche dans le dossier où sont stockés ma solution et mes projets, mais je ne trouve aucun fichier .log.

Voici la configuration pour la journalisation:

enter image description here

90
Hanxue

Le fichier journal de Visual Studio est uniquement pris en charge pour les projets C++. Il vous suffit de travailler avec la fenêtre de sortie pour les autres. .

Voir ce fil de discussion similaire: VS2010: journal de construction minimal en sortie et journal détaillé dans le fichier journal

Et au cas où vous le feriez pour un projet C++, le fichier est à :

... journal de construction dans le répertoire des fichiers intermédiaires ... Le chemin d'accès et le nom du journal de construction sont représentés par l'expression de macro MSBuild, $(IntDir)\$(MSBuildProjectName).log.

94
Dmitry Pavlov

La documentation de msdn est assez claire à ce sujet (et vous ne l'aimerez pas!):

https://msdn.Microsoft.com/en-us/library/jj651643.aspx

Où il est dit:

Pour créer un fichier journal de construction pour un projet à code géré Dans la barre de menus, choisissez Générer, Générer la solution.

Dans la fenêtre Sortie, mettez en surbrillance les informations de la construction, puis copiez-les dans le Presse-papiers.

Ouvrez un éditeur de texte, tel que le Bloc-notes, collez les informations dans le fichier, puis enregistrez-le.

19
C Johnson

Utilisez la sortie de génération au lieu de la journalisation dans un fichier. Au lieu de copier/coller, cliquez simplement quelque part dans la sortie et appuyez sur CTRL + S pour enregistrer. Visual Studio vous demandera un emplacement (testé avec Visual Studio 2017, mais je suppose que cela fonctionne également dans les versions antérieures).

enter image description here

16
danglund

S'il est vrai que VS n'autorise pas cela directement, il est toujours possible de construire avec MSBuild "à l'intérieur" de VS2015 et d'obtenir à la fois la sortie de la fenêtre de construction et le fichier journal, comme suit:

  1. Dans votre solution VS Managed, ajoutez un nouveau projet (appelons-le "Make"). une. Le type de projet souhaité est le projet Visual C++/NMake.
  2. Définissez les commandes MSBuild dont vous avez besoin sur la ligne de commande (voir ci-dessous).
  3. Modifiez la configuration de la solution pour générer le projet NMake au lieu des projets gérés normaux.

Cela créera un projet avec les lignes de commande Build, Rebuild et Clean dans lesquelles vous pourrez exécuter directement MSBuild. Par exemple:

Reconstruire: MSBuild.exe /ds /v:diag /property:Configuration=Debug ..\BuildTest\BuildTest.csproj /t:Clean,Build

Construire: MSBuild.exe /ds /v:diag /property:Configuration=Debug ..\BuildTest\BuildTest.csproj /t:Build

Nettoyer: MSBuild.exe /ds /v:diag /property:Configuration=Debug ..\BuildTest\BuildTest.csproj /t:Clean

Vous pouvez également spécifier plusieurs lignes de commande MSBuild.EXE afin de générer plusieurs projets. Pour le résultat habituel de création de la solution complète, vous pouvez uniquement cibler les assemblages finaux et laisser le graphe de dépendances générer les cibles individuelles.

Cela produira un fichier .log, où NOM est le nom du projet NMake que vous avez utilisé. Dans l'exemple ci-dessus, le journal serait make.log.

Un exemple de travail est disponible sur GitHub: https://github.com/bitblitz/VS_MsbuildExample (testé avec VS2015)

Notez que la construction directe de projets individuels continuera de générer le comportement normal du VS, mais vous pouvez construire la solution complète à l'intérieur du VS et obtenir les journaux de construction.

1
Brad