VB6: liberando solo unas pocas DLL que tienen una gran dependencia sin romper ninguna referencia
binary-compatibility (1)
Tengo que lanzar algunos cambios en las DLL seleccionadas (cambios simples internos a los métodos, nada que rompa la compatibilidad de acuerdo con esto )
Por lo tanto, el método generalmente aceptado es mantener los archivos DLL antiguos en un directorio compartido independiente y, al crear los archivos DLL nuevos, compilarlos con la compatibilidad binaria establecida en el conjunto anterior de archivos DLL. Esto se hace para no cambiar los GUIDs mientras registro mis nuevos archivos DLL. Estos GUID se utilizan como referencias en otros archivos DLL que no he alterado durante el lanzamiento.
Ahora, cuando intento hacer una nueva DLL, aparece una advertencia: "La DLL de compatibilidad binaria o EXE contiene un tipo de parámetro o tipo de retorno cuya definición no se puede encontrar". Estoy bastante seguro de que no agregué nada para romper la regla de compatibilidad binaria (sin cambios en la firma, métodos públicos, variables, etc.). ¿Soy un novato al no verificar algo básico?
Rascándome la cabeza desde la mañana. Cualquier ayuda es muy apreciada.
EDITAR: Si hay cambios en mi firma, ¿hay alguna forma de que pueda saber sin comparar el código?
Tome sus archivos DLL anteriores y agregue un prefijo compat_
a ellos.
Básicamente cambie el nombre de su archivo compat_MyAppDataAccess.dll
a compat_MyAppDataAccess.dll
.
Ahora vaya a las propiedades de su DLL ActiveX y configure su proyecto para que tenga compatibilidad binaria con el nuevo compat_MyAppDataAccess.dll
, como se muestra a continuación.
Ahora solo crea tu DLL y despliégalo.
Deberia de funcionar. Si, de hecho, tu compatibilidad binaria se rompería como resultado de tus cambios, recibirás una advertencia que así lo indique.