Permanent Fehler beim Ausführen einer Datei

DrMueller

Erfahrenes Mitglied
Hi Leute,
mein Thread grad unter diesem habe ich geclosed, da ich das hinbekommen habe.
Ich habe dort auch die Links durchgelesen, aber irgendwie geht mir da was nicht in den Kopf.
Folgendes: Ich habe ein Testprojekt mit den Verweisen erstellt und mache nur einen Aufruf von einer DLL.
Egal welche ich aufrufe, immer kommt der Fehler:

failed due to the following error: 80040154.

Ich habe gegoogelt und gehört, dass tatsächlich die 64/32bit Mechanik hier mitspielt, denn ich kompiliere uf 32bit für einen 64bit Server.

Ich habe jede mögliche Konfiguration etc. probiert, aber der Fehler hält sich hartnäckig.


Hat irgendwer eine Idee, was da noch das Problem sein könnte? BIn für jeden Tip sehr froh.
 

DrMueller

Erfahrenes Mitglied
hm die DLLs kommen von unserer Hauptsoftware. Diese ist bereits installiert und mit VB6 programmiert.
Ich sollte eigentlich eine Schnittstelle, welche unter .net2 programmiert wurde, dazu installieren, doch wegen den Problemen habe ich zuerst diese Testapplikation unter .net2 eingerichtet.

Die Verweise zeigen eben auf DLLs des Hauptprojektes, werden also als Interops dann mitgegeben.
 

Steiner_B

Erfahrenes Mitglied
Ich kenne das Problem wenn man versucht z.B.: von einer 32 Bit Applikation auf eine 64Bit Dll zuzugreifen. Eventuell ist dies bei dir auch der Fall
 

DrMueller

Erfahrenes Mitglied
möglich, aber ich kompiliere ja die exe und die interops auf targetplattform x64. Muss ich denn noch was umstellen, dass das System das richtig erkennt?
 

Alexander Schuc

crazy-weasel
Hallo.

Also deine Anwendung läuft zwar auf einem 64bit System, greift aber auf eine 32bit DLL die mit VB6 erstellt wurde zu? Setz mal auf TargetPlattform x86, und probiers erneut.

lg,..
 

DrMueller

Erfahrenes Mitglied
Hi, ja genau so ist es.
Habe ich mit dem Testprojekt ebenfalls probiert, es wird auch der entsprechende Ordenr x86 beim Kompilieren erstellt. Aber der Fehle tritt immer noch auf.
Btw: Kann es etwas damit zu tun haben, dass es ein 64Bit Citrix Server ist?
 

Cromon

Erfahrenes Mitglied
Deine Fehlermeldung bedeutet, dass die Klasse nicht registriert wurde. Dies kann unter anderem davon kommen, dass die DLL für x86 kompiliert wurde und sich selbst daher mit den InprocServer32-Schlüssel registriert hat, deine Applikation nun aber im WoW6432Node nach dem Schlüssel sucht. Schau also, dass die DLLs korrekt registriert werden mit der richtigen Version von regsvr.
 

DrMueller

Erfahrenes Mitglied
Hm ok klingt einleuchtend.
Sorry für die dumme Frage, aber:
Die Interops sind in solchen Zusammenhängen nie das Problem oder? Ich muss die Original DLLs demfall neu registrieren? Weil ich hab sie auf dem Server mit dem mir bekannten regsvr32 registriert, hat aber nichts geholfen.
 

Neue Beiträge