Hallo zusammen,
habe ein Projekt mit einigen EXE und jede Menge DLL's.
Ich möchte nicht alle Dateien innerhalb eines Verzeichnisses ablegen, sondern
möchte folgende Struktur haben:
Die EXE-Dateien sollen in das Verzeichnis APP\BIN und die DLL-Dateien sollen in das Verzeichnis APP\LIB abgelegt werden.
Prinzipielles Problem ist, dass die DLL's zur Laufzeit gefunden werden müssen.
Ich habe mich bereits mit der Thematik beschäftigt und bin auf folgende Lösungen gestoßen:
Vielen Dank im voraus für eure Mitarbeit.
Zusätzlich ist mir noch aufgefallen das auch mit dem Setzen der Umgebungsvariablen die DLL's nicht gefunden werden können.
Hallo Jingo,
DLLs werden nicht über die Umgebungsvariable LIB sondern PATH gesucht.
herbivore
Hallo herbivore,
ich weiß daß die Umgebungsvariable über "Path" und nicht über "Lib" gesetzt wird.
Trotzdem funktioniert es nicht.
Hallo Jingo,
gut! Setzt du die Variable auch systemweit? Also unter Systemsteuerung/System/Erweitert/Umgebungsvariablen?
herbivore
Ja klar, die Varialbe wird systemweit gesetzt.
Ich setze die Umgebungsvariable über die API-Funktion "SetEnvironmentVariable":
//Deklaration
[DllImport("Kernel32.dll")]
public static extern int SetEnvironmentVariable(string name , string value ) ;
//Aufruf zum Testen
string s = Environment.GetEnvironmentVariable("path");
s += @";o:\ap\lib";
Leider funktioniert es nicht.
Hallo Jingo,
soweit ich weiß, wird durch SetEnvironmentVariable nur der momentane Prozess beeinflusst. Ich denke du solltest es zumindest mal probieren, es über die Systemsteuerung zu setzen.
herbivore
Das ist richtig, über SetEnviromentVariable wird die Umgebungsvariable nur für den Prozess gesetzt. Nachdem der Prozess beendet wurde wird die Umgebungsvariable automatisch zurückgesetzt.
Ich habe es jetzt mal über die Systemsteuerung probiert. Auch dies ist gescheitert.