Comment créer un fichier .csproj à partir d’une ligne de commande avec un journal écrit à un emplacement spécifié?

Alors que la construction ‘no-log’ semble fonctionner correctement avec quelque chose comme

“c: \ Programmes \ Microsoft Visual Studio 9.0 \ Common7 \ ide \ VCSExpress” Project1.csproj / build

les échecs suivants:

“c: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ ide \ VCSExpress” Project1.csproj / build /Log=log.txt

montrant une fenêtre avec ce texte:

Argument de commutateur manquant. Nom de configuration requirejs pour le commutateur / build.

Utilisez: vcsexpress [solutionfile | fichier de projet | anyfile.ext] [commutateurs]

Le premier argument de vcsexpress est généralement un fichier de solution ou un fichier de projet. Vous pouvez également utiliser n’importe quel autre fichier comme premier argument si vous souhaitez que le fichier s’ouvre automatiquement dans un éditeur. Lorsque vous entrez un fichier de projet, l’EDI recherche un fichier .sln avec le même nom de base que le fichier de projet dans le répertoire parent du fichier de projet. Si aucun fichier .sln n’existe, alors l’EDI recherche un seul fichier .sln qui référence le projet. Si aucun fichier .sln unique n’existe, alors l’EDI crée une solution non enregistrée avec un nom de fichier .sln par défaut qui porte le même nom de base que le fichier de projet.

Constructions en ligne de commande: vcsexpress solutionfile.sln / build [solutionconfig] [/ project nomduprojetfile [/ nom projectconfig]]

/ Log Consigne l’activité IDE dans le fichier spécifié pour le dépannage. / ResetSettings Restaure les parameters par défaut de l’EDI, éventuellement réinitialisé sur le fichier VSSettings spécifié. / SafeMode Lance l’EDI en mode sans échec lors du chargement de fenêtres minimales.

Commutateurs spécifiques au produit:

Pour attacher le débogueur à partir de la ligne de commande, utilisez: VsJITDebugger.exe -p

[J’utilise Visual Studio 2008 Express]

Donc, les questions sont:

  • Existe-t-il un moyen de s’assurer que le fichier journal est écrit quelque part?

  • Ou bien le commutateur /Log est-il uniquement censé être utilisé lorsque l’EDI est exécuté en mode interface graphique? Si oui, existe-t-il des solutions de contournement?

Sous le capot, Visual Studio utilise msbuild pour toute sa magie de construction. Autant que je sache, cela s’applique également aux éditions Express.

Si vous ne l’avez pas déjà, MSBuild fait partie du SDK .NET.

L’appel de MSBuild présente l’avantage de générer directement la construction – appeler VCSExpress introduira simplement une surcharge.

Voici la ligne de commande MSBuild que j’ai utilisée:

 msbuild.exe  /t:rebuild /verbosity:quiet /logger:FileLogger,Microsoft.Build.Engine;logfile= 

Devrait fonctionner de la même manière avec au lieu de .

Vous devez spécifier la configuration après l’option / build. De plus, le fichier journal doit déjà exister, il n’en crée pas un à partir de rien. Ainsi:

 copy con > log.txt ^Z // Type Ctrl+Z "c:\Program Files\Microsoft Visual Studio 9.0\Common7\ide\VCSExpress" Project1.csproj /build debug /log log.txt 

Dans la fenêtre qui apparaît avec toutes les informations .. cela vous donne l’erreur:

Argument de commutateur manquant. Nom de configuration requirejs pour le commutateur / build.

Et puis cela vous donne un tas d’informations, y compris ceci:

vcsexpress solutionfile.sln /build [ solutionconfig ] ligne de commande: vcsexpress solutionfile.sln /build [ solutionconfig ]

Il veut juste savoir quel type de configuration vous avez – je pense soit “Release” soit “Debug”. Vous ne savez pas si vcsexpress a le “Gestionnaire de configuration” ou les pages de propriétés de Solution Build dans le menu “Build” .. Reportez-vous à la section “Configuration de la solution active” .. cette personne a rencontré ce problème, consultez sa capture d’écran: Propriété de configuration de la tâche MSBuild