visual j # non funziona in .NET 4
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?
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) .