Visual Studio 2010 64-bit-COM-Interop-Problem

Ich versuche, fügen Sie ein VC6 COM-DLL zu unserer VS2010RC C# - Lösung. Die DLL kompiliert wurde mit der VC6-tools zu erstellen, die eine x 86-version und kompiliert wurde, mit dem VC7 Cross-Plattform-tools, die zum erzeugen einer VC7 DLL.

Die x86-version der Baugruppe funktioniert gut, solange der Konsum C# - Projekt die Plattform eingestellt ist, um x86. Es spielt keine Rolle, ob die x64 oder die x86-version der DLL ist wirklich registriert. Es funktioniert mit beiden. Wenn die Plattform auf "Alle CPU' ich erhalten BadImageFormatException auf die Belastung der Interop.<name>.dll.

Als für die x64-version, ich kann mir gar nicht bekommen, das Projekt zu bauen. Ich erhalte die tlbimp-Fehler:

TlbImp : Fehler TI0000: EINEN einzigen gültigen Maschinentyp kompatibel mit den
input type library angegeben werden muss.

Hat jemand gesehen dieses Problem?

EDIT:

Ich habe eine Menge mehr zu Graben in dieser Frage und denke, dass dies möglicherweise eine Visual Studio Fehler. Ich habe eine saubere Lösung. Ich bringe in mein COM-assembly, die mit Sprache Agnostiker 'Any CPU' ausgewählt. Der Prozess-Architektur des resultierenden Interop DLL x86 eher als für MSIL.

Haben können, um die Interop von hand für Sie jetzt, um diese zu arbeiten.

Wenn jemand einen anderen Vorschlag, lass es mich wissen.

InformationsquelleAutor der Frage Adam Driscoll | 2010-03-15

Schreibe einen Kommentar