Hallo,
Ich habe eine C# Anwendung die in Form_Load eine DLL lädt und vorher prüft ob diese vorhanden ist.
Diese Anwendung kann von einem anderen Prozess gestartet werden, doch dann wird die DLL nicht gefunden. Wenn die Anwendung mit der DLL direkt gestartet wird, klappt das aber.
Woran kann das liegen?
Also ein paar mehr informationen könntest du uns schon geben...
Lädst du die dll per code oder wird die dll per verweis geladen?
Wenn wir dir wirklich helfen sollen brächten wir deinen code...
hast du dir schon mal ausgeben lassen unter welchem pfad du die beiden dlls suchst? Also per message box bei Form_Load den pfad an dem die dll gescuth wird ausgeben und schauen ob die dll dort ist.
Meine erste idee: du hast die dll nur in den debug ordner getan und wenn du den prozess startest gehst du über release.
Machst du irgentwas mit current directory?
Bei Risiken oder Nebenwirkungen fressen sie die Packungsbeilage oder schlagen sie ihren Arzt mit ihrem Apoteker.
Wenn ich die Anwendung direkt starte, klappt es ja die DLL zu laden.
Sie ist mit in dem Debug-Ordner. Ich starte auch die Debug.exe von der anderen Anwendung aus.
Ich konnte es jetzt aber lösen indem ich "Prozess_x.StartInfo.WorkingDirectory" verwende.
Jetzt kann der gestartete Prozess auf seine Ressourcen zugreifen. Wahrscheinlich hat er sie ohne diese Pfadangabe deshalb nicht gefunden..