Access - .Net Com Interop auf Vista 64

04/11/2008 - 16:37 von Stephan Mayer | Report spam
Hallo NG,

ich habe eine selbst programmierte Access 2003 Anwendung die auf eine
eigene .Net DLL via Com Interop zugreift. Diese DLL enthàlt reinen .Net
Code (keine weiteren Verweise auf Com Objekte oder soetwas). Dies
Konstellation hat bisher einwandfrei unter Windows XP sowie Vista 32 Bit
funktioniert.

Nun haben wir hier den ersten Recher mit Vista 64. Ich habe das ganze
wie bisher immer installiert. Im Access Codeeditor (làuft unter Vista
64) kann ich auf die Klassen und Funktionen der .Net DLL zugreifen und
er kompiliert mir das Projekt auch ohne Murren.

Nur wenn ich dann im Betrieb an die stelle zum erstellen des Objects
komme (dim test as new CommNetDLLClass) , kommt die Fehlermeldung
"Objekterstellung durch ActiveX-Komponente nicht möglich".

Habe die .Net - Com DLL einmal mit AnyCPU kompiliert und einmal mit X86
Flag. Beide male die gleiche Fehlermeldung.

Könnte es sein, das Vista versucht die DLL mit Hilfe des X64 Framework
zu hosten und sich dann 32 Bit Access und 64 Bit .Net ins Gehege kommen?

Würde es etwas helfen die Bibliothek als X64 zu kompilieren (müsste dazu
erst ein VS auf einem Vista 64 Rechner installieren...)?

Bin für jede Hilfe dankbar.

Grüße

Stephan
 

Lesen sie die antworten

#1 Thomas Scheidegger
04/11/2008 - 17:34 | Warnen spam
Hallo Stephan

selbst programmierte Access 2003 Anwendung



also immer 32-Bit, auch auf 64-Bit OS...

einmal mit AnyCPU kompiliert und einmal mit X86 Flag. Beide male die
gleiche Fehlermeldung.



wegen Access evtl. besser fix: X86.

Ich schàtze das Problem liegt eher an der Registry
(bei 64-Bit OS gibt es im Prinzip eine separate für 32-Bit und 64-Bit)

und welches 'REGASM' zum registrieren verwendet wurde:
(unter 64-Bit OS ist .NET auch 'doppelt' vorhanden, 32 + 64)
Grundlagen:
<URL:http://support.microsoft.com/kb/956933/en-us>

<URL:http://blogs.msdn.com/jigarme/archi...p.aspx>


Oder ggf noch falsche Pfade
(siehe zB MSDN zu: regasm /codebase)



Thomas Scheidegger - 'NETMaster'
http://dnetmaster.net/

Ähnliche fragen