Impossibile caricare il file o l’assembly ‘***.dll’ o una delle relative dipendenze

Ho questa dll che ho creato molto tempo fa e da utilizzare per la connessione al db di un software specifico che posso sviluppare per. Ho avuto problemi per oltre 4 anni e innumerevoli applicazioni con questa dll.

Cercando di distribuire la mia ultima creazione, ottengo il seguente errore:

System.IO.FileNotFoundException: Could not load file or assembly '***.dll' or one of its dependencies. The specified module could not be found.

Quindi, per ogni dll che ho scritto, ho sempre fatto un semplice form dell’applicazione per verificare che dll. Esecuzione di semplici app ceduto lo stesso errore. La dll non è possibile caricare o utilizzare qualcosa di diverso: di Sistema, del Sistema.I Dati, System.XML. Quindi, per quanto riguarda depencies di andare, io non vedo nulla di sbagliato.

Dal modo in cui funziona il tutto su un dev stazione. Il problema è limitato alla distribuzione stazioni. .Net e le necessarie componenti ridistribuibili, dato che faccio tutto in C++, di distribuzione e di lavoro.

In esecuzione FUSLOGVW.exe ha mostrato tutto funziona bene.

In esecuzione depends.exe ha detto: Attenzione: almeno un modulo ha un insoluto di importazione in quanto manca una funzione di esportazione in ritardo-a carico del modulo.

Ho già provato a riscrivere il tutto. Che ha prodotto gli stessi risultati.

Indizi nessuno?

MODIFICHE

Qui è l’errore totale messaggi:

See the end of this message for details on invoking \"
just-in-time (JIT) debugging instead of this dialog box.\"

************** Exception Text **************\"
System.IO.FileNotFoundException: Could not load file or assembly 'connectionTo.dll' or one of its dependencies. The specified module could not be found.\"
File name: 'connectionToJobboss32.dll'\"
   at TESTConnection.Form1.button1_Click(Object sender, EventArgs e)\"
   at System.Windows.Forms.Control.OnClick(EventArgs e)\"
   at System.Windows.Forms.Button.OnClick(EventArgs e)\"
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)\"
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)\"
   at System.Windows.Forms.Control.WndProc(Message& m)\"
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)\"
   at System.Windows.Forms.Button.WndProc(Message& m)\"
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)\"
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)\"
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)\"
\"



************** Loaded Assemblies **************\"
mscorlib\"
    Assembly Version: 4.0.0.0\"
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)\"
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll\"
----------------------------------------\"
TESTConnection\"
    Assembly Version: 1.0.3996.18980\"
    Win32 Version: \"
    CodeBase: file:///C:/Program%20Files%20(x86)/conn/TESTConnection.exe\"
----------------------------------------\"
System.Windows.Forms\"
    Assembly Version: 4.0.0.0\"
    Win32 Version: 4.0.30319.1 built by: RTMRel\"
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll\"
----------------------------------------\"
System.Drawing\"
    Assembly Version: 4.0.0.0\"
    Win32 Version: 4.0.30319.1 built by: RTMRel\"
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll\"
----------------------------------------\"
System\"
    Assembly Version: 4.0.0.0\"
    Win32 Version: 4.0.30319.1 built by: RTMRel\"
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll\"
----------------------------------------\"

C’è nessun errore nel visualizzatore eventi.

OriginaleL’autore Dewm Solo | 2010-12-10

10 Replies
  1. 34

    o una delle sue dipendenze

    Che è il solito problema, non si può vedere manca un DLL non gestita con Fuslogvw.exe. Cosa migliore da fare è quello di eseguire SysInternals’ ProcMon utilità. Vedrai ricerca per la DLL e non riesce a trovare. Modalità profilo in Dependency Walker può mostrare troppo.

    Potresti punto su cosa cercare in un ProcMon registro o anche in Dependency Walker? Onestamente a vedere nulla, ma i Successi in entrambe le utilità. In ProcMon faccio vedere un paio di “File non trovato”, ma sono seguita immediatamente da una ricerca dello stesso file in un altro percorso e si è incontrato con successo.
    Stai guardando la cosa giusta afaict. Deludente, che di solito è un modo sicuro per vedere. Nessuna idea, al di là di annegamento nei dati. È possibile salvare la traccia e mettere su un servizio di condivisione di file, se si desidera che un altro set di occhi su di esso.
    Impostazione del Working Directory campo .NET impostazioni del progetto (Debug scheda) per la directory con tutte le Dll mio programma dipendeva risolto questo problema per me.
    È possibile utilizzare Telerik Just Decompile per visualizzare le dipendenze di un’assemblea (exe o dll)

    OriginaleL’autore Hans Passant

  2. 18

    Ho avuto lo stesso problema con una dll di ieri e tutto è fatto riferimento è stato di Sistema, del Sistema.Dati, e System.Xml. Scopre la configurazione per il tipo di Piattaforma non di linea. La dll è stato costruito per x86 e il programma che usa è stato “CPU” e dato che io sono in esecuzione una versione x64 macchina, è stato eseguito il programma come x64 e aveva problemi con gli x86 dll. Non so se questo è il vostro problema o meno, solo pensato che vorrei parlare come qualcosa di altro da controllare.

    Poiché scrivo in C++ Gestito la “CPU” non esiste. Ho controllato la configurazione del gestore e comunque sia, dll e app, sono fissati per Win32. Dal momento che sto costruendo questo in 32 bit, io ero in esecuzione dal mio Program Files (x86) cartella per evitare problemi con i 64 bit. …Così mi era stato alla ricerca in questo, ma io non ci vedo nulla di sbagliato. Oh, e una delle stazioni sto cercando di distribuire su un 32 bit macchina comunque.
    Avuto un problema simile. Ho letto la tua risposta e non poteva cambiare con VS interfaccia. Così ho aperto il file di progetto in un editor di testo e modificare AnyCPU manualmente, e funziona. Anche VS interfaccia di valori accettati come si dovrebbe in primo luogo.

    OriginaleL’autore light

  3. 6

    Ho avuto lo stesso problema. Per me, è stato causato da le impostazioni predefinite del server IIS locale sulla mia macchina. Quindi il modo più semplice per risolvere il problema, era di utilizzare il costruito nel server di sviluppo Visual Studio, invece 🙂

    Più recenti versioni IIS su x64 macchine hanno una impostazione che non permette le applicazioni a 32 bit per l’esecuzione di default. Per abilitare le applicazioni a 32 bit in IIS locale, selezionare il pool di applicazioni in IIS manager, fare clic su “impostazioni Avanzate”, e “Abilitare le Applicazioni a 32 Bit” da False a True

    OriginaleL’autore Henric Rosvall

  4. 5

    Ho recentemente colpito questo problema, l’applicazione potrebbe funzionare bene, lo sviluppatore di macchine e selezionare altre macchine, ma non di recente, le macchine installate. Si è scoperto che le macchine non lavoro era il Visual C++ 11 Runtime installato mentre appena installato macchine non. Aggiunta di Visual C++ 11 Runtime ridistribuibile app installer risolto il problema

    Nota che ci sono 2 versioni di Visual C++ Runtime: 32 e a 64 bit. Installare entrambi per essere sicuri. Nel mio caso solo il 64 bit del pacchetto risolto il problema.

    OriginaleL’autore danw

  5. 4

    Mi sono imbattuto in questo di recente. Si è scoperto che la vecchia DLL è stato compilato con una versione precedente (Visual Studio 2008) ed è stato il riferimento che versione di dinamico librerie di runtime. Stavo cercando di esecuzione in un sistema che aveva solo .NET 4.0 su di esso e non l’ho mai installato alcun dinamica librerie di runtime. La soluzione? Ho ricompilato il DLL di collegamento statico librerie di runtime.

    Controllare l’applicazione di log di errore nel Visualizzatore Eventi (EVENTVWR.EXE). Essa vi darà ulteriori informazioni sull’errore e probabilmente punto alla vera causa del problema.

    Ho guardato il visualizzatore eventi e inviato il messaggio di errore ho completamente. Non viene visualizzato nel visualizzatore eventi.
    Si dicono che funziona su dev macchina, ma non sulla distribuzione della macchina. Sei la distribuzione di una versione di debug di dll e non hai le librerie di debug sulla distribuzione della macchina? C’è qualche altra versione di connectionTo.dll o connectionToJobboss32.dll da qualche parte nel percorso di ricerca?
    Ho provato sia il debug e release. Tutti con gli stessi errori. Ho usato per ottenere il MSVCR100.dll mancante errore. Che è ridistribuibile libreria per applicazioni realizzate con MS VC++, ma ho fatto copia insieme con l’applicazione ora. Ho anche sostituirla con MSVCR100d.dll quando si copia la versione di debug, invece.
    “La soluzione? Ho ricompilato il DLL di collegamento statico librerie di runtime.” Questo significa che ricompilato originale VS 2008 DLL in VS 2010? Non riesco a capire. Grazie

    OriginaleL’autore Jim Mischel

  6. 2

    Questa risposta è del tutto estranei al po la situazione, ed è molto improbabile scenario per chiunque altro, ma solo nel caso in cui si può aiutare qualcuno …

    Nel mio caso mi è stato sempre “impossibile caricare il file o l’assembly ‘System.Windows.Forme, Version=4.0.0.0 …” perché avevo smontato e rimontato il programma utilizzando ILDAsm.exe e ILAsm.exe da .Net Framework /SDK versione 2. Il passaggio a ILDAsm.exe e ILAsm.exe da .Net Framework /SDK versione 4 ha risolto il problema.

    (Stranamente, anche se facendo quello che ho fatto può sembrare un errore evidente, il risultante file EXE, che non ha funzionato fatto indicare che era destinata .Rete 4 quando esaminate con JetBrains dotPeek.)

    OriginaleL’autore RenniePet

  7. 1

    Ho avuto lo stesso problema -.dll di lavoro per tutto il tempo, poi il mio computer si è bloccato e poi ho avuto questo problema del ” impossibile caricare il file o l’assembly ….dll’

    Due possibili soluzioni: quando il computer si è schiantato ci possono essere alcuni incoerente file in

    C:\Users\<yourUserName>\AppData\Local\Temp\Temporary ASP.NET Files

    Eliminazione di una cartella, ricompilare e l’errore è sparito.

    Una volta ho avuto, inoltre, di cancellare la mia cartella packages (avevo letto che da qualche altra parte). Consentire di Visual Studio /nuget per installare i pacchetti mancanti (o reinstallare manualmente) e poi era tutto a posto di nuovo.

    OriginaleL’autore outofmind

  8. 0

    1) Copiare le Dll da “Esterni\ffmpeg\bin” del progetto la directory di output (dove eseguibile soggiorni);
    2) assicurarsi che il progetto è costruito per x86 di destinazione (viene eseguito in modalità a 32 bit).

    Seguire questo thread per ulteriori

    OriginaleL’autore user3490852

  9. 0

    Un modo più semplice per determinare che cosa dipendenze di un nativo di DLL è quello di usare la Dependency Walker – http://www.dependencywalker.com/

    Ho analizzato la DLL nativa e scoperto che dipendeva da MSVCR120.DLL e MSVCP120.DLL, entrambi i quali non sono stati installati sul mio server di gestione temporanea nella directory System32. Ho installato il runtime di C++ sul mio server di staging e il problema è stato risolto.

    OriginaleL’autore Steve Rukuts

  10. 0

    Avuto lo stesso problema e l’ho risolto facendo in modo progetti nella soluzione con la stessa configurazione e la piattaforma (nel mio caso si trattava di Debug x64). In qualche modo il VIsual Studio mancava x64 per i progetti e ho modificato il .sln file manualmente (copiato le piattaforme e configurazioni correttamente costruito progetti per i progetti che mancavano le impostazioni che avevo bisogno). Questo è quello che sembra, per uno dei progetti:

    {1BA29980-EE5D-4476-AFFC-0F177B6C9865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {1BA29980-EE5D-4476-AFFC-0F177B6C9865}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {1BA29980-EE5D-4476-AFFC-0F177B6C9865}.Debug|x64.ActiveCfg = Debug|x64
    {1BA29980-EE5D-4476-AFFC-0F177B6C9865}.Debug|x64.Build.0 = Debug|x64
    {1BA29980-EE5D-4476-AFFC-0F177B6C9865}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {1BA29980-EE5D-4476-AFFC-0F177B6C9865}.Release|Any CPU.Build.0 = Release|Any CPU
    {1BA29980-EE5D-4476-AFFC-0F177B6C9865}.Release|x64.ActiveCfg = Release|x64
    {1BA29980-EE5D-4476-AFFC-0F177B6C9865}.Release|x64.Build.0 = Release|x64

    Ma poi lo stesso errore si è verificato per un progetto che aveva un file Java (*.jar) nelle dipendenze. Ho dovuto modificare le Variabili di Ambiente manualmente per creare un record con questo valore

    C:\Program Files\Java\jre1.8.0_171\bin\server

    per Java percorso, e metterlo sulla parte superiore del Percorso di elementi.

    Questo risolto il problema fino a quando ho aggiornato Java sulla mia macchina. Ho dovuto modificare il numero di versione in Variabili di Ambiente per abbinare la cartella aggiornata nome.

    C:\Program Files\Java\jre1.8.0_181\bin\server

    OriginaleL’autore Ghukas

Lascia un commento