Pregunta

Quiero que mi página ASP.NET que desembolsar y ejecutar comandos git. Pongo los comandos en un archivo bat que trabaja:

REM cd to the git repo folder
cd c:\temp\mygitrepo
"c:\Program Files\Git\Bin\git.exe" show c090dc4b8b1b3512c1b5363c371e21d810d02f54 -- myfile.txt

Si funciono mi archivo .bat desde una línea de cmd, no hay problema. Si lo ejecuto usando System.Diagnostics.Process.Start, me sale este error:
RUNTIME_PREFIX solicitó, pero cómputo prefijo falló. Utilización de una retrocesión estática

El error proviene de este archivo git: http: // github. com / git / git / burbuja / maestro / exec_cmd.c

Yo uso exactamente la misma técnica para ejecutar comandos svn.exe, no hay problema.

EDIT 1: Desde el hilo aquí I' hemos aprendido que msysgit instala algunos archivos en una ubicación asociada con el usuario actual, yo, en lugar de todos los usuarios. El servidor web IIS se está ejecutando bajo otra cuenta de usuario. Traté de copiar algunos de los archivos git que me llamaron la atención, como .gitconfig, a otros usuarios (en Documents and Settings). Sin suerte. Por lo tanto, he cambiado mi enfoque para conseguir IIS para hacerse pasar por mí cuando se lance el comando git.

¿Fue útil?

Solución

¿Es realmente un error, o es sólo que le notifica de un repliegue? Basado en el código relacionado, parece que el comando todavía debe ejecutar con éxito, solamente utilizando el prefijo estática en lugar de la RUNTIME_PREFIX.

Si el comando está fracasando, es posible que desee asegurarse de que ninguna de las variables de entorno necesarias están disponibles cuando se inicia el proceso de .NET. También podría ser necesario para suplantar una identidad diferentes ventanas para ejecutar el comando con los permisos adecuados (estoy asumiendo que la identidad ASP.NET está restringido tanto como sea posible.) El objeto ProcessStartInfo proporciona algunas formas de configurar el proceso, incluyendo las ventanas de identidad, el verbo proceso y variables de entorno. Asegúrese de que está proporcionando el contexto apropiado que su archivo por lotes requiere antes de ejecutarlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top