Verweis-Pfad ändern

exiter28

Erfahrenes Mitglied
Hallo Jungz,

ich hab ein kleines Verständnis problem:

wenn ich einer Form einen Verweis hinzufüge,
in meinem Beispiel ist dies die Shell32.dll
dann wird der Verweispfad lokal festgelegt.
Also z.B.: in C:\Dok~\User\VisualBasic\Prjects\usw..\
zu jeweiligen Project.
Wenn ich nun diese Form lokal auf dem Rechner starte,
wo ich den Verweis hinzugefügt habe, dann funtkioniert das auch.
Allerdings, wenn ich die erstellte .exe dann auf einem anderen System
starte, erscheint die Fehlermeldung, daß die angegebene Datei
nicht gefunden werden kann und das Programm wird geschlossen.
Bei den .Net Komponenten stellt sich dieses Problem nicht, da
sich die DLL´s im .NET Verzeichnis befinden.

Nun zu meiner Frage:

wie kann ich eine DLL als Verweis hinzufügen, ohne daß der PFad
zum jeweiligen Projekt zeigt


Besten Dank
 
Was meinst du mit "wenn ich einer Form einen Verweis hinzufüge"?
Das ergibt keinen Sinn.
Wenn du mit Visual Studio arbeitest kannst du Referenzen über die Projekteigenschaften hinzufügen. Eventuell musst du dann noch die Eigenschaft "Copy Local" auf true setzen, damit die DLL beim Publizieren nicht verloren geht.
 
ok. Natürlich einem Project einen Verweis hinzufügen.
Das mit dem kopieren ist bereits auf true gesetzt aber der
hacken an der ganzen Sache ist, daß der Verweispfad immer
auf den Projekteordner zeigt und nicht auf System32 Verzeichnis.
Den Pfad kann ich auch nicht ändern oder
 
Ich kann das nicht ganz nachvollziehen. Ich denke es handelt sich nur um eine VS-interne Eigenschaft die ohne Relevanz für die kompilierte Exe-Datei ist. Normalerweise werden DLLs so gesucht, dass in der Registry nachgeschaut wird sowie im Verzeichnis wo die Exe gespeichert ist und in irgendwelchen Windows-Verzeichnissen (Reihenfolge weiß ich nicht). Erst falls dann immer noch keine passende DLL gefunden wurde kommt eine Fehlermeldung.
Hast du schon mal ausprobiert dein Programm laufen zu lassen?!
 
ja, hab ich. Wenn ich die lokale Kopie ausschalte dann kann ich den Fehler auch nachvollziehen.
Zur Veranschaulichung hab ich mal ein pic angehängt.
Hier ist zu sehen, daß der Verweis auf die DLL auf eigene Projekte zeigt.
Und das ist das Problem. Wenn ich die .exe auf einem anderen System starte,
kommt es zum Fehler:
 

Anhänge

  • verweis.jpg
    verweis.jpg
    32,7 KB · Aufrufe: 149
Kannst du mal die Fehlermeldung zitieren?
Es sollte eigentlich alles richtig sein. Hast du die entsprechende DLL beim Starten auf dem anderen PC mitkopiert (Irgendwohin, zum Beispiel ins Programmverzeichnis)?
Die Pfade geben nur an, wo die DLL auf deinem Computer zu finden ist. Schließlich haben nicht alle Leute ihr Windows in C:\ und die anderen Verweise, die ich bei dir sehe (System, System.Drawing usw), stellen keine Probleme da wenn jemand sein Windows in D:\ oder sonstwas installiert hat.
 
"Die Datei oder Assembly Interop.Shell32, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden."

Dies ist die Fehlermeldung. Die DLL ist in jedem System32 Verzeichnis.
 
:) wenn die DLL nicht registriert wäre, würde ich sie nicht verwenden
können-



Kann mir keiner helfen? :confused:


habs gefunden..... danke
 
Zuletzt bearbeitet:
Das stimmt so nicht, man kann auch nicht-registrierte DLLs verwenden.
Was war denn die Lösung des Problems?
 
Zurück