2012-07-02 22 views
5

Im tratando de usar la biblioteca libgit2sharp. Mi único código esProblemas al cargar git2.dll?

Repository repository = new Repository(@"C:\Path\To\Repo"); 

y cuando lo ejecuto me sale un error que dice No se puede cargar DLL 'GIT2': El módulo especificado no se pudo encontrar. Por lo tanto, fui manualmente y agarré git2.dll de libgit2sharp y lo moví al directorio. Cuando ejecuto el mismo programa después de eso, aparece otro error: se intentó cargar un programa con un formato incorrecto.

Mientras investigaba esto encontré this post y la solución que parecía funcionar para el cartel no funcionó para mí. Esa publicación también se hizo hace un año y se hizo una supuesta solución, estoy usando la última rama de libgit2sharp (he intentado repositorios más antiguos sin cambios)

¿Alguna idea?

+0

¿A qué versión de .NET apunta? – Cameron

+0

El marco de destino es el cliente predeterminado de .NET framework 4.0 – Whyrusleeping

+0

Además, cambiar esto a 3.5 no cambia nada – Whyrusleeping

Respuesta

2

La opción recomendada sería instalar la última LibGit2Sharp NuGet package que se encargará de instalar todo en la ubicación correcta.

Sin embargo, si prefiere manejar esto a mano, el repositorio GitHub incluye las versiones x86 y amd64 del git2.dll. Al realizar un pago de la rama master o vNext, debe recuperarlos.

Tenga en cuenta que cada versión de LibGit2Sharp funciona en contra de una versión específica del binario libgit2. Cada rama de LibGit2Sharp contiene un submódulo libgit2 que apunta a que se envuelve la confirmación de libgit2.

submodule

el fin de que funcione a la perfección, el conjunto LibGit2Sharp espera que el git2.dll binaria que se encuentra en una estructura de árbol específico.

LibGit2Sharp.dll 
|__NativeBinaries 
    |__x86 
    | |_git2.dll 
    | 
    |__amd64 
     |_git2.dll 
+0

que hizo el truco, ¡gracias! – Whyrusleeping

+1

Estoy haciendo una extensión VS usando un proyecto VSIX. Los archivos git2.dll se estaban copiando al directorio bin \ Debug | Release, pero no incluidos en mi paquete VSIX. Terminé teniendo que crear la estructura de carpetas NativeBinaries \ amd64 y x86 en mi proyecto, y luego vincular a los archivos git2-3f8d005.dll como accesos directos. En las propiedades de acceso directo, configuro la propiedad Incluir en VSIX en verdadero, y ahora los ensamblajes se incluyen en el VSIX con la estructura de carpetas adecuada. Funciona, pero no es ideal, porque cada vez que actualizo el paquete LibGit2Sharp NuGet tendré que actualizar también las rutas de acceso directo. – deadlydog

Cuestiones relacionadas