2010-08-24 65 views
0

J'essaie de générer un assembly d'interopérabilité primaire pour l'un de mes projets qui fait référence à Microsoft ActiveX Data Objects (MDAC 2.8). Ajout de cette bibliothèque via la boîte de dialogue Références dans Visual Studio ajoute le fichier Interop.ADOR.dll dans le répertoire bin de la solution.Où puis-je trouver l'assembly d'interopérabilité primaire (ADI) de MS ActiveX Data Object (ADOR)?

Cependant, quand je lance tlbimp.exe je reçois l'erreur:

C:\Solution> tlbimp Component.dll /out: My.Interop.Component.dll /keyfile:myKeyFile 
.snk /primary 

Microsoft (R) .NET Framework Type Library to Assembly Converter 3.5.30729.1 
Copyright (C) Microsoft Corporation. All rights reserved. 

TlbImp : error TI0000 : System.ApplicationException - Referenced type library 'A 
DOR' does not have a primary interop assembly registered. 

Je ne pouvais pas trouver quoi que ce soit en ligne, ce qui est étrange. Des idées?

Répondre

0

Il vous suffit de supprimer l'argument/primary de tlbimp.exe. Il est inutile de générer des PIA pour vos propres composants. Rendre les membres de vos classes publics qui utilisent un type ADOR est préférable d'éviter, vous devrez seller l'utilisateur de votre composant avec une référence à celui-ci et utiliser le même ADIA PIA.

Si vous voulez vraiment faire cela, vous devrez d'abord générer un PIA pour msador15.dll et l'enregistrer. Je suis assez sûr que Microsoft n'envoie pas un. Vous devrez également les déployer.