Domanda

Ho provato a convertire un progetto che si basa sulle vj runtime per VS2010, ma esso errori fuori quando si tenta di eseguire.

Si sta dando l'errore che "Impossibile caricare il file o l'assembly 'vjslib' o una delle sue dipendenze. Si è tentato di caricare un programma con un formato non corretto. "

Ho reinstallato i vj di runtime, ma non sembrava aiuto.

C'è un modo per ottenere ottenere .net 4 per lavorare con questo?

È stato utile?

Soluzione

Molto semplice soluzione - Calling J # codice NET 4.0

Si prende il controllo e caricarlo prima fornitura di un percorso esplicito. Poi la prossima volta è necessario, si conosce già il percorso (o è già caricato nel dominio di applicazione).

Sarà necessario utilizzare la funzione LoadLibrary, quindi importare il riferimento PInvoke:

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

Il carico (sia la funzione principale di Console / WinForms o in 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"));
}

Altri suggerimenti

Ho scaricato Microsoft Visual J # versione 2.0 Redistributable Package da http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=4712 e installato problema it.the è stato risolto.

ho ottenuto questo al lavoro copiando C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ vjsnativ.dll (per 64 bit Microsoft.NET \ Framework64 \ v2.0.50727 \ vjsnativ.dll) per eseguire il debug di mia applicazione / directory di rilascio.

Ho il sospetto che Microsoft avrà bisogno di rilasciare un altro pacchetto ridistribuibile j # per il lavoro con .net 4.0. Nel frattempo, questa work-around fa un ottimo lavoro.

L'unico modo ho potuto farlo funzionare è stato quello di copiare il C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ vjsnativ.dll alla cartella C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 cartella. Vedere http://community.microfocus.com/borland/managetrack/starteam/w/knowledge_base/17108.error-unable-to-load- dll-vjsnativ-the-specificato-modulo-potrebbe-non-si-trova-eccezioni-da-hresult-0x8007007e.aspx

Per aggiungere alle risposte esistenti, ho scoperto che le soluzioni non ha funzionato per me.

Per prima cosa che ho fatto è stato quello di riparare il Microsoft Visual J # 2.0 Redistributable Package -SE (x64) utilizzando il Pannello di controllo di Windows (Basta fare clic destro e scegliere Ripristina). Questo è stato nel caso in cui l'ho fatto alcun danno nei miei precedenti tentativi di risolvere il problema.

Avevo già implementato la soluzione fornita da David Thielen.

1 punto supplementare chiuso l'affare per me (risolto il problema): Copiare "vjscor.dll", "vjslib.dll" e "vjsnativ.dll" da C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 a C: \ Windows \ Microsoft .NET \ Framework \ v2.0.50727

Quindi, in pratica il pacchetto di Microsoft messo le DLL corrette nel framework .NET a 64 bit e ho dovuto spostarli manualmente nella cartella a 32 bit che viene poi copia-incollato nella mia cartella soluzione mediante la soluzione di David Thielen (sopra) .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top