Pregunta

El caso

Estoy intentando actualizar la INDY a la última versión para mi Delphi XE (Actualización 1), lo que he descargado el archivo Indy10 última (Indy_4545.zip) de indy.fulgan.com/ZIP .

Los paquetes se compila correctamente y que ahora puede ver incluso la nueva versión 10.5.8.0 en el diálogo sobre el cuadro, pero después de un IDE reiniciar tengo un mensaje que dice:

No SE Encuentra El Punto de Entrada del PROCEDIMIENTO @ Idhttp @ @ TIdCustomHTTP GetRequestHeaders $ qqrv en la biblioteca de vínculos dinamicos IndyProtocols150.bpl.

Mi traducción libre al Inglés:

punto de entrada no encontrado para el procedimiento @ Idhttp @ @ TIdCustomHTTP GetRequestHeaders $ qqrv que no se encuentra en la biblioteca de vínculos dinámicos IndyProtocols150.bpl.

Después de una comparación rápida de los nuevos y IdHTTP.pas me encontré con un montón de cambios en la clase TIdCustomHttp, incluyendo el cambio de nombre de algunos métodos

  • GetResponseHeaders a GetResponse
  • GetRequestHeaders a GetRequest
  • SetRequestHeaders a SetRequest

Además de las empresas públicas / modificados publicados método en este y otros y clases de interfaces.

Después de la actualización, tengo una gran cantidad de paquetes en su defecto a la carga, incluyendo dclcxPivotGridOLAPD15.bpl, que a su vez depende de dclDataSnapServer150.bpl la que se encuentra con el método que faltan en la BPL.

Que yo sepa no puedo volver a compilar el dclDataSnapServer150.bpl (y tal vez otros paquetes en su defecto, acabo de parar aquí).

apoyo DataSnap y DevExpress en el IDE es una necesidad para mi día a día, así

Las preguntas

  1. ¿Hay un camino preestablecido seguro para la actualización a la nueva INDY para Delphi XE?
  2. Si no es así, estoy en el lado seguro con sólo parching el código fuente mediante la creación de los antiguos métodos públicos y llamar a los otros nuevos en la parte de la implementación?
  3. me estoy perdiendo algo o estoy realmente atascado con INDY 10.5.7 hasta el lanzamiento próximo de menor importancia Delphi / importante?
¿Fue útil?

Solución 3

A partir de las respuestas de otros y sobre todo los comentarios de Remy:

No es posible instalar Indy 10.5.8.0 sin romper DataSnap en Delphi XE Actualización 1.

Otros consejos

[Instalación de Indy para Delphi XE]

Sí, el proceso de instalación es tedioso, pero vale la pena hacerlo bien hecho.

Esto es para todos los componentes excepto Indy SSL. (No he probado ninguna de las cosas SSL todavía.)

A.) Buscar y destruir todos los archivos de Indy que vienen con Delphi. Estos son no es bueno ya que el proyecto de Indy se actualiza diariamente con nuevas correcciones de errores. Si Delphi se recoge alguno de los viejos archivos en lugar de su nueva biblioteca Indy fresca, obtendrá errores locos desde el IDE en todos los momentos en los que son muy difíciles de rastro.

i. Ir a los componentes -.> Paquetes de instalación, a continuación, eliminar por completo todos los paquetes que comienzan con "Indy"

ii. Cerrar Delphi.

III. Borrado de todos los archivos que coinciden con "* dclIndy .bpl" y "Indy * .bpl" de la carpeta Bin de Delphi.
(C: \ Archivos de programa \ Embarcadero \ RAD Studio \ 8.0 \ bin)

IV. Borrar todos los archivos que coinciden con "Indy * .dcu" y "Id * .dcu" ^^^ en subcarpetas Lib de Delphi.
(C: \ Archivos de programa \ Embarcadero \ RAD Studio \ 8.0 \ lib \ Win32 \ debug)
(C: \ Archivos de programa \ Embarcadero \ RAD Studio \ 8.0 \ lib \ Win32 \ release)
^^^ Advertencia: cuidado con no Indy DCU que suceda para empezar con las letras "ID" como "idispids.dcu" y "idoc.dcu"

v. Eliminar toda la carpeta de origen Indy10:
(C: \ Archivos de programa \ Embarcadero \ RAD Studio \ 8.0 \ source \ Indy10)

B.) Descargar la última Indy10_XXXX.zip de http://indy.fulgan.com/ZIP / (Si recibe un error de compilación o un error de tiempo de ejecución utilizando este archivo zip para cualquiera de los pasos abajo - no se desanime! Vuelva a descargar el archivo zip en el día y trate de seguir otra vez. Este archivo zip se actualiza todos los días y hay una posibilidad de que puede haber algunos bugs / errores en un día determinado.)

C.) Extraer sólo las carpetas del sistema, Core, y protocolos en su propia carpeta de la biblioteca de Indy. ej.
(C: \ \ MyDelphiComponents Indy \ Core)
(C: \ \ MyDelphiComponents Indy \ System)
(C: \ MyDelphiComponents \ Indy \ Protocols)

D.) Lanzamiento Delphi. No haga caso de todos los diálogos paquete falló: Estos son los paquetes de Embarcadero que se basan en Indy! (Basta con hacer clic en Aceptar en todos los errores, e indican que cualquier fallidos paquetes no deben cargarse de nuevo.)

E) Ir a Opciones -.> Opciones de entorno -> Opciones de Delphi -> Ruta de Navegación - Quitar los caminos que comienzan con $ (BDS) \ Lib \ Indy10

F) Ir a Opciones -.> Opciones de entorno -> Opciones de Delphi -> Ruta de la biblioteca -. Añadir sus nuevas carpetas del sistema, Core, y los protocolos de la Etapa C de ruta de la biblioteca de Delphi

G) Realice los siguientes 5 acciones en orden.: (Sólo decir OK para cualquier cuadro de diálogo acerca de la actualización del proyecto.)


Importante:

Después de cargar cada dpk y antes de cada compilación, vaya a:

Proyecto -> Opciones -> Descripción -> Construir control

Configurar botón de opción para "Reconstruir explícita".

(En realidad, esto es opcional, pero siempre me hacen paquetes explícita Reconstruir porque parecen más fáciles de manejar de esa manera, pero me gustaría oír lo otras personas piensan acerca de esto ...)


  1. Build - System \ IndySystem150.dpk
  2. Build - Core \ IndyCore150.dpk
  3. Construir primero, a continuación, en Instalar - Core \ dclIndyCore150.dpk
  4. Build - Protocolos \ IndyProtocols150.dpk
  5. Construir primero, a continuación, en Instalar - Protocolos \ dclIndyProtocols150.dpk

** cheque doble que ha establecido "Reconstruir explícita" en todos los paquetes! **

H) Por último, vaya a componentes -.> Instalar paquetes y encontrar todos los paquetes que se basan Indy en que se apagaron durante el paso D. vuelvan a activar, y el reinicio de Delphi. (Si su nuevo Indy no ha cambiado demasiado desde la largada con Delphi, los paquetes utilizarán la nueva Indy!)

Nota ++, puede que no reciba ningún error de inmediato al reactivar los Embarcadero los paquetes, pero pueden aparecer en momentos aleatorios más tarde. Por ejemplo, acabo de instalar Indy10_4548.zip y todos los paquetes reactivadas parecían estar bien. A continuación, un día después de el azul, el IDE me lanzó un mensaje que dice que no pudo encontrar en GetRequestHeaders TIdCustomHTTP y que el dclWindowsAzureManagement150.bpl estaba teniendo problemas como resultado. Así que tuve que volver atrás y desactivar el paquete de Windows Azure en el IDE.

yo sepa que va a perder algunos paquetes que depende en gran medida de la versión Indy desplegado con Delphi, sobre todo la nueva DataSnap.

Usted puede tratar de construir sus paquetes de onwn a utilizar en lugar de las normales que no pueden volver a compilar, siempre y cuando todas las unidades necesarias están disponibles.

En mi humilde opinión Embarcadero debe encontrar una solución en torno a su propio código en función de una biblioteca "inestable" como Indy. Eso no es aceptable en un entorno profesional, sobre todo porque no son capaces de lanzar actualizaciones oficiales, incluyendo las correcciones de errores de Indy más allá de unos pocos meses a partir de la liberación. Por ejemplo he encontrado últimamente que Indy 10.5.5 mensaje de correo trunca análisis sintáctico Direcciones de correo electrónico, que no sucede en 10.5.8. Por supuesto, el comportamiento 10.5.5 no es aceptable, me veo obligado a actualizar ...

A pesar de que yo no uso Delphi XE mi auto, pero la versión de 2010. Yo era capaz de actualizar los componentes Indy a la versión más actual, con la ayuda de este post desbordamiento de pila: paso a paso de actualización de Indy 10 en Delphi 2009

Sé que la pregunta es para el 2009 (pero las cubiertas de respuesta 2010 también), pero funcionó para mí en la versión de 2010, así que yo creo que va a ayudar también. Me gustaría recomendar que había leído los comentarios, ya que hay algunos buenos consejos allí también. Espero que esto ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top