Visual Studio 2005 com DLL für VBA erstellen

little_skunk

Semiprofi
Thread Starter
Mitglied seit
17.08.2006
Beiträge
3.773
Hallo

Ich möchte gern mit Visual Studio 2005 eine DLL erstellen und mit VBA nutzen. Dazu habe ich ein neues Projekt vom Typ Klassenbibliothek erstellt, Class1.vb gelöscht und eine Com Klasse hinzugefügt. Der Klasse habe ich zu Testzwecken eine öffentliche leer Prozedur hinzugefügt. Alles streng nach Anleitung. Die Projekt Eigenschaften habe ich zur Sicherheit nochmal konrolliert. Com Interop Registrieren und für Com Sichtbar machen sind beide aktiviert. Beim Erstellen wird wie gewünscht eine DLL erstellt und automatisch für Com Registriert.

Soweit läuft alles nach Plan. Ich kann in VBA (Excel) einen Verweis auf die zur DLL gehörende tlb Datei hinzufügen. Dim Bla as ComKlasse funktioniert auch noch. Bla=new ComKlasse führt dann aber zu einem Fehler. Laufzeitfehler (8007002)
Datei oder Asseblyname XXX oder eine Abhänigkeit (nicht Abhängigkeit!) davon wurde nicht gefunden.

Jetzt weiß ich nicht mehr weiter. Hätte es so wie beschrieben funktionieren müssen oder hab ich irgendwo einen Fehler gemacht?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Nach 2 Tagen google Suche habe ich das Problem gefunden und nach einem weiteren Tag auch eine Lösung.

Das Problem ist, dass meine DLL mit dem 2er Framework erstellt wurde aber Excel das 1er Framework versucht aufzurufen. Die Lösung ist ein einfacher Registry Eintrag.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\AppPatch\v2.0.50727.00000\excel.exe

Dort hab ich jetzt das 2er Framework eingestellt und es läuft. Fraglich ist jetzt nur noch ob ich damit nicht andere DLLs, die auf das 1er Framework aufbauen, für Excel unbrauchbar gemacht habe. Zumindest kann ich jetzt aber erstmal weiter Programmieren.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh