Estoy escribiendo una aplicación para la API de Peachtree y necesita funcionar con cualquier versión de la API. Lamentablemente, el dll de Peachtree 2011 no puede interactuar con Peachtree 2010, y viceversa, a pesar de que los dos dlls se almacenan en la misma ubicación y se ejecutan exactamente con el mismo código.¿Cargar un dll COM en el tiempo de ejecución?
Pensé que debería poder referirme a la dll por su ruta de archivo, dejar la versión específica en falso, incrustar los tipos de interoperabilidad en falso, y copiar local en falso y simplemente usaría cualquier versión de la máquina, pero obtener un error cuando lo hago - "Excepción ha sido lanzada por el objetivo de una invocación".
¿Hay alguna manera de enlazar de forma definitiva el dll aunque sea COM?
Puedo proporcionar muestras de código de lo que sea que crea que sería útil, pero es más un problema de configuración de proyecto que cualquier otra cosa.
EDIT: Gracias a todos por su ayuda. Encontré mi solución en una pregunta de otra persona y la publiqué aquí.
Normalmente se vincula la DLL de interoperabilidad en tiempo de compilación, y si está presente en el sistema, cargará el dll COM en tiempo de ejecución. ¿Hay más información en el error o una excepción interna? ¿Hay un código de error (0xZZZZZZZZ)? ¿Puedes vincular el seguimiento de la pila, o eso es dar demasiada información sobre tu aplicación? La API de Peachtree, ¿es COM, o es una DLL que se vincula a COM? –