Je veux que ma page ASP.NET exécute et exécute des commandes git. Je mets les commandes dans un fichier de chauve-souris qui fonctionne:Comment puis-je supprimer une page ASP.NET et exécuter une commande git?
REM cd to the git repo folder
cd c:\temp\mygitrepo
"c:\Program Files\Git\Bin\git.exe" show c090dc4b8b1b3512c1b5363c371e21d810d02f54 -- myfile.txt
Si je lance mon fichier .bat à partir d'une invite de commandes, pas de problème. Si je l'exécute en utilisant System.Diagnostics.Process.Start, j'obtiens cette erreur:
RUNTIME_PREFIX demandé, mais le calcul du préfixe a échoué. En utilisant fallback
statique L'erreur provient de ce fichier git: http://github.com/git/git/blob/master/exec_cmd.c
J'utilise exactement la même technique pour exécuter des commandes svn.exe, pas de problème.
EDIT 1: A partir du thread here J'ai appris que msysgit installe certains fichiers dans un emplacement associé à l'utilisateur actuel, moi, au lieu de tous les utilisateurs. Le serveur Web IIS s'exécute sous un autre compte d'utilisateur. J'ai essayé de copier certains des fichiers git qui ont attiré mon attention, comme .gitconfig, à d'autres utilisateurs (dans Documents and Settings). Pas de chance. Donc, je me suis focalisé sur IIS pour me faire passer quand il lance la commande git.
Mentalement, j'ai rapidement rejeté votre "Est-ce réellement une erreur ... la commande devrait encore s'exécuter avec succès". Mais c'était la clé. Ma logique a capturé stdout et stderr. Si stderr n'était pas vide, ma logique supposait que la commande échouait et affichait uniquement stderr. Comme vous le pensiez, stdout contenait la sortie attendue malgré l'erreur. –
Parfois, il suffit d'un peu de réflexion hors de la boîte. ;) Content de son travail. – jrista