Pregunta

He intentado convertir un proyecto que se basa en los VJs tiempo de ejecución para VS2010, pero él los errores hacia fuera cuando se trata de ejecutar.

Es dar el error que "No se pudo cargar el archivo o ensamblado 'vjslib' o uno de sus dependencias. Se ha intentado cargar un programa con un formato incorrecto. "

Me vuelve a instalar los VJs tiempo de ejecución, pero no parece que ayuda.

¿Hay alguna manera de llegar llegar .net 4 a trabajar con esto?

¿Fue útil?

Solución

solución muy simple - Llamando J # código de .NET 4.0

Se toma el control y cargue primero el suministro de una ruta explícita. Entonces la próxima vez que sea necesario, que ya conoce el camino (o ya está cargado en el dominio de aplicación).

Se tendrá que utilizar la función LoadLibrary, por lo importar la referencia PInvoke:

[DllImport("kernel32", SetLastError = true)]
static extern IntPtr LoadLibrary(string lpFileName);

El de la carga (ya sea la función principal en la consola / WinForms o en Global.asax Application_Start):

if (Environment.Version.Major >= 4)
{
    string folder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), @"..\Microsoft.NET\Framework\v2.0.50727");
    folder = Path.GetFullPath(folder);
    LoadLibrary(Path.Combine(folder, "vjsnativ.dll"));
}

Otros consejos

He descargado Microsoft Visual J # Versión 2.0 Paquete redistribuible de http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=4712 y emisión it.The instalado se resuelve.

Tengo esto para el trabajo mediante la copia C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ vjsnativ.dll (para 64 bits Microsoft.NET \ Framework64 \ v2.0.50727 \ vjsnativ.dll) para depuración de mi solicitud directorio / liberación.

Sospecho Microsoft tendrá que lanzar otro paquete redistribuible J # para trabajar con .NET 4.0. Mientras tanto, este trabajo en torno a hace un buen trabajo.

La única manera de que pudiera conseguir que el trabajo era copiar el directorio C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ vjsnativ.dll al directorio C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 carpeta. Ver http://community.microfocus.com/borland/managetrack/starteam/w/knowledge_base/17108.error-unable-to-load- DLL-vjsnativ-la--módulo especificado-podría-no-encontrar-excepción-from-hresult--0x8007007e.aspx

Para añadir a las respuestas existentes, he encontrado que las soluciones no funcionó para mí.

Lo primero que hice fue para reparar el Microsoft Visual J # Redistributable Package 2.0 -SE (64) desde el Panel de control de Windows (Sólo haga clic derecho y haga clic en la reparación). Esto fue en el caso de que hice ningún daño en mis anteriores intentos de solucionar el problema.

Yo ya había implementado la solución aportada por David Thielen.

1 paso adicional cerró el trato para mí (resuelto el problema): Copiar "vjscor.dll", "vjslib.dll" y "vjsnativ.dll" de C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 C: \ Windows \ Microsoft \ Framework \ v2.0.50727

Así que, básicamente, el paquete de Microsoft coloca las DLL correctos en el marco .NET de 64 bits y tuve que mover manualmente en la carpeta de 32 bits que luego se copia-pega en mi carpeta de la solución mediante una solución de David Thielen (arriba) .

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