Autor Beitrag
eumeldeumel
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 28.05.12 17:07 
Hi,

ich bin neu im Forum. Ich hab schon etwas Erfahrung mit C#, und arbeite gerade an einem möglichst einfachen Tool, für unerfahrene Benutzer, um eine MySQL-Datenbank zu verwalten.

Das läuft bei mir auf dem Rechner auch alles super, aber sobald ich da ganze exportiert auf einem anderen Rechner abspiele, bring er ein Exception, dass er die DLL nicht findet, und das Programm stürzt logischerweise ab.

Also meine Frage, wie bring ich VC# dazu, die Verweise mitzugeben, dass es jeder nutzen kann?

Wenn das nicht geht, wie kann ich das Problem dann lösen?

LG
eumeldeumel
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 28.05.12 18:41 
Zitat:
Also meine Frage, wie bring ich VC# dazu, die Verweise mitzugeben, dass es jeder nutzen kann?


Äh willst du uns damit indirekt mitteilen das du ein Setupprojekt in Visual Studio erstellt hast aber dir noch irgendwelche Abhängigkeiten fehlen?
Ansonsten solltest du alle Abhängigkeiten die du weitergeben musst im Ausgabeverzeichnis deines Projekts findest. Wenn es noch indirekte Abhängigkeiten gibt die nicht dort landen, solltest du in der Doku der von dir verwendeten zusätzlichen Komponenten unter dem Punkt Deployment nachlesen was alles noch zusätzlich wie weiterzugeben ist.
eumeldeumel Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 28.05.12 18:56 
Ich weiß nicht genau, was du mit einem Setupprojekt meinst, aber ich versuch nochmal mein Problem zu schildern. ^^

Ich habe einen Verweis auf die MySQL.dll in meiner Projektmappe erstellt, dass ich diese nutzen kann.
Ich miene, ich hab im Reiter "Projekt" auf "Verweis hinzufügen" geklickt, und so die DLL "eingebunden".
Nur wird diese nicht auf andere Rechner übertragen bzw. mitgegeben, und ein Benutzer von meinem Programm kann dieses nicht nutzen, weil eben die DLL fehlt.

Ich hoffe ich konnte das jetzt etwas genauer erläutern.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 28.05.12 19:03 
Und wodurch wird das Programm auf den anderen Rechner befördert?

Wenn Du es manuell kopierst, kopier' die DLL einfach mit :nixweiss:
Wenn Du es nicht manuell machst, dann beschreib mal, wie es gemacht wird ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 28.05.12 19:07 
Zitat:
Nur wird diese nicht auf andere Rechner übertragen bzw. mitgegeben, und ein Benutzer von meinem Programm kann dieses nicht nutzen, weil eben die DLL fehlt.


Visual Studio kann nicht magisch irgendwie Dlls in der Welt verteilen. Wenn jemand was auf einen anderen Rechner bringt bist du das manuell oder eben durch ein von dir erstelltes Setupprogramm. Also was hast du den alles auf den anderen Rechner kopiert? Du solltest zumindest alle exe, exe.conf und dll Dateien aus dem Ausgabeverzeichnis deines Projekts nehmen. Wenn du das bereits gemacht hast must du wie gesagt noch in der Doku nachschlagen (z.b in der deiner mysql Komponente) was noch alles zu verteilen ist.
eumeldeumel Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 28.05.12 19:35 
Sorry, also wie folgt:

Ich klicke bei Debuggen auf Projektmappe erstellen(F6), und dann bekomm ich ne EXE raus, die ich dann weitergebe.

Also der Vorherige Post trifft den Nagel auf den Kopf, dann ist nur die Frage, wenn ich in meinem projekt auf die mysql.dll verweise, wo erwartet der die dann? gibts bei windows einen ordner, wo alle dlls drinliegen, und wo er sie findet, oder muss ich dann einen ordner bei ProgramFiles anlegen, und sie dahin verfrachten?

LG
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 28.05.12 19:37 
Zitat:
wo erwartet der die dann?


Einfach in den selben Ordner packen wo die exe liegt.
eumeldeumel Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 28.05.12 20:07 
ne, das geht auch nicht, schon probiert. :-(

selbst den ganzen projektordner zu kopieren hilft nix.

Ich hab entdeckt, dass der meine projektmappe verweist, kann den pfad aber nicht ändern.
Wenn ich den Verweis auf die DLL, welche im Programme-Ordner liegt direkt ändere, und dann den ganzen mysql ordner auf den anderen rechner kopiere gehts auch nicht.

komisch
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 28.05.12 20:47 
Hast du die richtige Dll Version(möglicherweise gibt es eine 32bit und eine 64bit Version) genommen? Hast du alle weiteren Dlls die deine mysql.dll selbst braucht auch kopiert (ich wiederhole lies die Doku zu deiner Komponente da sollte es drin stehen)?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 28.05.12 21:49 
Wie lautet die genaue Fehlermeldung eigentlich?

Wo nach welcher DLL gesucht wird, kannst du mit dem Process Monitor feststellen.
eumeldeumel Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 28.05.12 22:23 
Fehler:

Die Datei oder Assembly "MySql.Data, Version=5.0.9.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d" oder ien Abhängikeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

aber ich habe eine lösung gefunden. wenn ich den das setup ausführe, welche mysql zum download anbietet, um die dll zur verfügung zu stellen, funzt alles wunderbar.
also er will wohl die dll im progarmmordner, oder das setup steckt die noch wo anders hin.

trotzdem danke für die hilfe!

LG
eumeldeumel