Also ich habe hier eine COM-DL (mit VB geschreiben) ich habe sie mti einem Verweis eingebunden. Und jetzt wollte ich einen Funktion daraus aufrufen und zwar so:
using P2K_Enumerate;
EnumStateClass test = new EnumStateClass();
MessageBox.Show(test.ShowMyVersion());
Bei leider bekomme ich bei EnumStateClass diese Fehlermeldung:
Eine nicht behandelte Ausnahme des Typs 'System.IO.FileNotFoundException' ist in P2KExplorer.exe aufgetreten.
Zusätzliche Informationen: Das angegebene Modul wurde nicht gefunden.
Wobei ich doch die DLL so eingebunden habe.
Hat VS.NET beim Verweis erstellen auch einen Interop Wrapper (mit Stubs) erstellt? Ist der COM Server (also deine DLL) auf dem System registriert?
Jo das Registrien fehlte 🙂
Kann ich das auch aus dem Program herraus Registrien lassen (bevor ich die aufrufe). Und muss ich den Wrapper der anwendung beilegen?
Der Wrapper muss sicher irgendwie beigelegt werden (ich glaube auch nicht dass es z.b. mittels ILMerge mit der Anwendung "verklebt" werden kann).
Ich bin mir nicht sicher wann genau der Server geladen wird. Falls er erst bei der ersten Verwendung geladen wirst kannst du ihn durchaus vorher automatisch registrieren lassen wenn er nicht bereits registriert ist. Falls nicht könntest du evtl. mit einem Loader arbeiten, die erst die Bedignungen prüft (und allenfalls nachbessert) und dann erst automatisch die eigentliche Anwendung lädt ... oder du nimmst halt ein klassisches Setup ...
es muss nicht unbedingt ein Setup sein. es reicht schon einfach einmaliger Aufruf von regsvr32.exe <dllpath> um die dll zu registrieren
Ich habe das bis jetzt ja mit bat. Reicht das eigentlich aus wenn man das 1 mal macht oder muss das nach jeden neustart gemacht werden?
Original von Xqgene
es muss nicht unbedingt ein Setup sein. es reicht schon einfach **einmaliger **Aufruf von regsvr32.exe <dllpath> um die dll zu registrieren