C# - Pfad der class library
Habe ich eine Klasse Bibliothek verwendet xml-Dateien in einem eigenen Verzeichnis.
Beim verweisen auf diese library aus einem anderen Projekt, wie kann ich sicher gehen, dass die Bibliothek arbeitet von seinem eigenen Verzeichnis?
Habe ich versucht Montage.GetExecutingAssembly().Lage aber immer noch gibt den Pfad des startup-Projekt.
Ihr Ansatz richtig ist. Sind Sie sicher, dass Sie (1) den Aufruf
(1) ja (2) Die dll in das Verzeichnis kopiert das startup-Projekt, sondern die xml-Dateien nicht kopiert.
Gut, (2) ist der Grund. Das kopieren erfolgt durch Visual Studio, so dass die ausführen-Anwendung hat keine Möglichkeit zu wissen, ist der ursprüngliche Speicherort dieser Datei.
GetExecutingAssembly
aus der eigenen Bibliothek und (2) Sie sind nicht mit einem "lokale Kopie" der Bibliothek?(1) ja (2) Die dll in das Verzeichnis kopiert das startup-Projekt, sondern die xml-Dateien nicht kopiert.
Gut, (2) ist der Grund. Das kopieren erfolgt durch Visual Studio, so dass die ausführen-Anwendung hat keine Möglichkeit zu wissen, ist der ursprüngliche Speicherort dieser Datei.
InformationsquelleAutor djskinner | 2009-11-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, dies ist eine alte post, aber im Falle jemand anderes stolpert von einer Suche, der einfachste Weg, die ich gefunden habe, um dies zu tun ist:
Foo
hier?Sind Sie ernst?
hahaha, ich kann mich nicht erinnern, machen dieses (dumme) Kommentar; sehr wahrscheinlich war betrunken als ich das gemacht.
InformationsquelleAutor Lance
Dies ist passiert, weil Ihr startup-Projekt hat zwei Optionen, um das laden der Bibliothek
So haben Sie hier zwei Optionen:
Verwenden Sie option 1, statt so.. aber die Benutzer der Anwendung werden nicht in der Lage zu Bearbeiten Sie die XML-Dateien. Ich kann nicht sehen, andere Optionen.
Zum hinzufügen eines weiteren Optionen: Legen Sie die XML-Dateien in einem angegebenen Verzeichnis data und speichern Sie den Verzeichnis-Pfad in der app.config. Nachdem Sie, Sie werden implementieren Ihr Projekt auf anderen PCs und verwenden Sie es außerhalb von Visual Studio, nicht wahr?
InformationsquelleAutor André Pena
Ich glaube nicht, dass Sie können, es sei denn, Sie starten in einer neuen Anwendungsdomäne, und das ist mehr ärger als es Wert ist. Kopieren Sie einfach die Dateien in ein eigenes Projekt, und legen Sie Sie in den Ort es erwartet relativ zum Arbeitsverzeichnis.
(Vielleicht möchten Sie auch bitten, den ursprünglichen Entwickler, warum Sie die Pfade zu den benötigten Dateien kann nicht gegeben werden, als parameter. Dies wäre der normale Weg, dieses problem zu lösen.)
InformationsquelleAutor Mark Byers
Ich bin sicher, es gibt einige Funktionen, um die Liste der geladenen Assemblys aus dem ExecutingAssembly, Schleife über diese zu finden, Sie zusammenzusetzen(class lib) erhalten dann die Lage. Sorry für die vage Antwort.
InformationsquelleAutor Simeon Pilgrim