J'écris une application pour l'API Peachtree et il doit fonctionner avec n'importe quelle version de l'API. Malheureusement, la DLL de Peachtree 2011 ne peut pas interagir avec Peachtree 2010, et vice versa, même si les deux DLL sont stockées dans le même emplacement et exécutées avec exactement le même code. Je pensais que je devrais être capable de se référer à la DLL par son chemin de fichier, laisser une version spécifique à false, intégrer les types d'interopérabilité à false, et copier local à false et il utiliserait simplement la version de la machine, mais je obtenir une erreur quand je fais cela - "Exception a été levée par la cible d'une invocation."Charger une DLL COM lors de l'exécution?
Existe-t-il un moyen de lier tard la DLL même si c'est COM?
Je peux fournir des exemples de code de ce que vous pensez être utile, mais c'est plus un problème d'installation de projet que n'importe quoi. EDIT: Merci beaucoup à tous pour votre aide. J'ai trouvé ma solution sur une question différente et je l'ai affichée ici.
Habituellement, vous liez la DLL interop au moment de la compilation, et si elle est présente sur le système, elle chargera la DLL COM au moment de l'exécution. Y a-t-il plus d'informations dans l'erreur, ou une exception interne? Y a-t-il un code d'erreur (0xZZZZZZZZ)? Pouvez-vous lier la trace de la pile, ou est-ce donner trop d'informations sur votre application? L'API Peachtree, est-ce COM, ou est-ce une DLL qui se connecte à COM? –