Laden...

benötigte Dateien (dll, ini) in einem anderen Ordner als exe

7 Antworten
2,269 Aufrufe
Letzter Beitrag: vor 18 Jahren
benötigte Dateien (dll, ini) in einem anderen Ordner als exe

Ich habe ein C# Projekt, das einen Wrapper benutzt. Der Wrapper holt sich die benötigten dlls aus dem Verzeichnis, wo die exe liegt. Also müssen die dlls zwangsläufig in diesem Ordner liegen, damit es funktioniert. Es funktioniert auch.

Wie kann ich dem Projekt nun sagen, daß er woanders nach den dlls suchen soll (den Pfad explizit angeben), z.B. wenn ich diese in ein anderes Verzeichnis verschieben will?

Zum Beispiel:
Meine exe liegt im Verzeichnis C:\Programme\MeinProgramm* und meine benötigten dlls, sowie die von den dlls benutzten ini-Dateien sind im Verzeichnis **D:\Ordner\Unterordner*. Wie kann ich meinem Programm sagen, daß es im Verzeichnis *D:\Ordner\Unterordner* nach den benötigten Daten suchen soll?

Mir wurde gesagt, daß es mit gacutil nicht geht, weil die benötigten dlls keine .NET Komponenten sind.

Geht das überhaupt, daß die dlls/inis in einem anderem Ordner sind als die exe, ohne den GAC zu benutzen?

Hatten wir heute schon. Probiers mal hier

PS: Willkommen auf mycsharp.de 🙂

PS: Willkommen auf mycsharp.de Danke!

Eine config kommt für mich eigentlich nicht in Frage, weil die dlls nicht in einem Unterordner, sondern ganz woanders liegen. Oder gibt es eine Möglichkeit in die config einen genauen Pfad anzugeben (außer PrivatePath)?

Also muss ich Möglichkeit A aus diesem Thread nehmen, oder?

Bin noch Anfänger in C# (wer hätte das gedacht 😉.

Hallo JCDenton,

wenn du keine .NET DLLs hast, dann geht System.Assembly.LoadFrom nicht.

Welchen Namespace brauche ich dazu?

Dazu gibt es zwei Sachen zu sagen. Ersten ist der Name vollqualifiziert angegeben und daher sind ist alles bis zum Klassennamen der Namespace. Zweitens, wenn du wirklich mal den Namespace nicht weiß, frage das nie im Forum, sondern schau immer in die Doku. Wir erwarten, dass du keine Frage stellst, die man einfach nur in der Doku nachschlagen muss.

herbivore

Sorry, hat das mit dem Namespace schon herausgefunden und den Beitrag editiert, darum steht es jetzt nicht mehr drin (falls sich jemand wundert, woher das Zitat kommt). Ich konnte ja nicht ahnen, daß innerhalb von 1Minute eine Antwort kommt, tolles Forum 👍 !

wenn du keine .NET DLLs hast, dann geht System.Assembly.LoadFrom nicht.

Und wie mache ich das dann, gibt es überhaupt die Möglichkeit irgendwie den Pfad von einer nicht .NET-dll anzugeben?

Hallo JCDenton,

ich bin immer davon ausgegangen, dass nicht verwaltete DLLs einfach im PATH gesucht werden. Vielleicht irre ich mich aber auch.

herbivore

Du kannst im PrivatePaht auch beliebig absolute Pfade eingeben.

Jetzt da herbivore es erwähnt. Ich weiß nicht sicher, ob er nur Verwaltete Assemblies (.NET Assemblies) oder alle DLLs im PrivatePath sucht.