Ist es möglich, Indy 10.5.8.0 in Delphi XE und DataSnap zu verwenden?

8

Der Fall

Ich versuche, den INDY auf die neueste Version für mein Delphi XE (Update 1) zu aktualisieren, also habe ich die neueste INDY10-Datei (Indy_4545.zip) von indy.fulgan.com/ZIP .

Die Pakete kompilieren erfolgreich und ich kann jetzt sogar die neue Version 10.5.8.0 im Dialog über die Box sehen, aber nach einem Neustart der IDE habe ich eine Nachricht erhalten, die sagt:

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

Meine kostenlose Übersetzung ins Englische:

Der Einsprungpunkt wurde nicht für die Prozedur @ Idhttp @ TIdCustomHTTP @ GetRequestHeaders $ qqrv gefunden, der nicht in der dynamischen Link-Bibliothek IndyProtocols150.bpl gefunden wurde.

Nach einem schnellen Vergleich von alten und neuen IdHTTP.pas fand ich eine Menge Änderungen an der TIdCustomHttp Klasse, einschließlich der Umbenennung einiger Methoden

  • GetResponseHeaders zu GetResponse
  • GetRequestHeaders zu GetRequest
  • SetRequestHeaders zu SetRequest

Zusammen mit veränderten public / published Methodenfirmen in dieser und anderen und Klassen Schnittstellen.

Nach dem Update konnte ich viele Pakete nicht laden, einschließlich dclcxPivotGridOLAPD15.bpl, was wiederum von dclDataSnapServer150.bpl abhängt, welches die fehlende Methode auf dem bpl findet.

AFAIK Ich kann den dclDataSnapServer150.bpl nicht neu kompilieren (und vielleicht andere fehlerhafte Pakete, ich habe hier einfach aufgehört).

DataSnap und DevExpress Unterstützung auf der IDE ist ein Muss für meinen Tag so

Die Fragen

  1. Gibt es einen sicheren, vordefinierten Pfad für die Aktualisierung auf den neuesten INDY für Delphi XE?
  2. Wenn nicht, bin ich auf der sicheren Seite, indem ich einfach den Quellcode durch Erstellen der alten öffentlichen Methoden abtast und die neuen im Implementierungsteil anrufe?
  3. vermisse ich etwas anderes oder bin ich wirklich mit INDY 10.5.7 bis zur nächsten Delphi Minor / Major Release fest?
jachguate 30.12.2010, 23:40
quelle

4 Antworten

4

Aus den Antworten anderer und hauptsächlich Remys Kommentaren:

Es ist nicht möglich, Indy 10.5.8.0 zu installieren, ohne DataSnap in Delphi XE Update 1 zu brechen.

    
jachguate 31.01.2011, 15:20
quelle
12

[Installieren von Indy für Delphi XE]

Ja, der Installationsvorgang ist mühsam, aber es lohnt sich, es richtig zu machen.

Dies gilt für alle Indy-Komponenten außer SSL. (Ich habe noch kein SSL-Zeug ausprobiert.)

A.) Suche und zerstöre alle Indy-Dateien, die mit Delphi geliefert werden. Diese sind    nicht gut, da das Indy-Projekt jeden Tag mit neuen Bugfixes aktualisiert wird.    Wenn Delphi anstelle der neuen, neuen Indy-Bibliothek eine der alten Dateien aufhebt,    Sie werden verrückte Fehler von der IDE zu allen verschiedenen Zeiten bekommen, die sehr schwierig sind    verfolgen.

ich. Gehen Sie zu Komponente - & gt; Pakete installieren und entfernen Sie dann alle Pakete, die mit "Indy" beginnen.

ii. Schließen Sie Delphi.

iii. Löschen Sie alle Dateien, die mit "dclIndy * .bpl" und "Indy * .bpl" übereinstimmen, aus dem Bin-Ordner von Delphi.
     (C: \ Programme \ Embarcadero \ RAD Studio \ 8.0 \ bin)

iv. Löschen Sie alle Dateien, die mit "Indy * .dcu" und "Id * .dcu" ^^^ übereinstimmen, in den Delphi-Lib-Unterordnern.
    (C: \ Programme \ Embarcadero \ RAD Studio \ 8.0 \ lib \ win32 \ debug)     (C: \ Programme \ Embarcadero \ RAD Studio \ 8.0 \ lib \ win32 \ release)     ^^^ Warnung: Achten Sie auf nicht-Indy DCUs, die mit den Buchstaben "id" beginnen                  wie "idispids.dcu" und "idoc.dcu"

v. Löschen Sie den gesamten Indy10 Quellordner:
    (C: \ Programme \ Embarcadero \ RAD Studio \ 8.0 \ source \ Indy10)

B.) Laden Sie die neueste Version von Indy10_XXXX.zip von Ссылка herunter    (Wenn Sie einen Kompilier- oder Laufzeitfehler mit dieser ZIP-Datei für einen der Schritte erhalten     unten - lass dich nicht entmutigen! Laden Sie die ZIP-Datei am folgenden Tag erneut herunter und versuchen Sie es     nochmal. Diese ZIP-Datei wird jeden Tag aktualisiert, und es besteht die Möglichkeit, dass dies geschieht     einige Bugs / Fehler an einem bestimmten Tag.)

C.) Extrahieren Sie nur die Ordner "System", "Core" und "Protocols" in Ihren eigenen Indy-Bibliotheksordner. ex.
   (c: \ MyDelphiComponents \ Indy \ Core)
   (c: \ MyDelphiComponents \ Indy \ System)
   (c: \ MyDelphiComponents \ Indy \ Protokolle)

D.) Starten Sie Delphi. Ignoriere alle fehlgeschlagenen Paketdialoge: Dies sind die Embarcadero-Pakete    die sich auf Indy verlassen! (Klicken Sie bei allen Fehlern einfach auf OK und geben Sie an, dass alle Fehler aufgetreten sind    Pakete sollten nicht erneut geladen werden.)

E.) Gehen Sie zu Optionen - & gt; Umgebungsoptionen - & gt; Delphi Optionen - & gt; Browsing Path    - Entfernen Sie Pfade, die mit $ (BDS) \ Lib \ Indy10

beginnen

F.) Gehen Sie zu Optionen - & gt; Umgebungsoptionen - & gt; Delphi-Optionen - & gt; Bibliothekspfad    - Fügen Sie Ihre neuen System-, Kern- und Protokollordner aus Schritt C in den Bibliothekspfad von Delphi ein.

G.) Führen Sie die folgenden 5 Aktionen nacheinander aus:    (Sagen Sie einfach OK zu allen Dialogen zum Aktualisieren des Projekts.)

Wichtig:

Nach dem Laden jedes dpk und vor jedem Build, gehen Sie zu:

Projekt - & gt; Optionen - & gt; Beschreibung - & gt; Build-Kontrolle

Setzen Sie das Optionsfeld auf "Explizit Rebuild".

(Eigentlich ist dies optional, aber ich mache immer Pakete Explicit Rebuild    weil sie so einfacher zu handhaben scheinen, aber ich würde gerne hören, was    andere Leute denken darüber nach ...)

  1. Build - System \ IndySystem150.dpk
  2. Erstellen - Core \ IndyCore150.dpk
  3. Zuerst bauen, Installieren Sie dann - Core \ dclIndyCore150.dpk
  4. Erstellen - Protokolle \ IndyProtocols150.dpk
  5. Zuerst bauen, dann Installieren - Protokolle \ dclIndyProtocols150.dpk

** Vergewissern Sie sich, dass Sie "Explicit Rebuild" für alle Pakete gesetzt haben! **

H.) Gehen Sie schließlich zu Komponente - & gt; Pakete installieren und suchen Sie alle Pakete, auf die Sie vertrauen    auf Indy, die während Schritt D deaktiviert wurden. Reaktiviere sie und starte Delphi neu.    (Wenn dein neuer Indy sich nicht zu sehr von dem geändert hat, der mit Delphi veröffentlicht wurde, diese     Pakete verwenden den neuen Indy!)

++ Hinweis: Wenn Sie Embarcadero erneut aktivieren, erhalten Sie möglicherweise keine Fehler     Pakete, aber sie können zu zufälligen Zeiten später auftauchen. Zum Beispiel habe ich gerade installiert     Indy10_4548.zip und alle reaktivierten Pakete schienen in Ordnung zu sein. Dann einen Tag später aus     Das Blau, die IDE warf mir eine Nachricht, die besagt, dass sie GetRequestHeaders nicht finden konnte     TIdCustomHTTP und das dclWindowsAzureManagement150.bpl hatte Probleme als     Ergebnis. Also musste ich zurückgehen und das Windows Azure-Paket in der IDE deaktivieren.

    
Fried Ribs 14.01.2011 18:41
quelle
7

AFAIK Sie werden einige Pakete verlieren, die stark von der mit Delphi bereitgestellten Indy-Version abhängen, vor allem von der neuen Datasnap.

Sie können versuchen, Ihre onwn-Pakete anstelle von Standard-Paketen zu erstellen, die nicht neu kompiliert werden können, solange alle benötigten Einheiten verfügbar sind.

IMHO Embarcadero sollte eine Lösung für seinen eigenen Code finden, abhängig von einer "instabilen" Bibliothek wie Indy. Das ist in einer professionellen Umgebung nicht akzeptabel, zumal sie nicht in der Lage sind, offizielle Updates, einschließlich der Fehlerkorrekturen von Indy, über einige Monate nach der Veröffentlichung hinaus zu veröffentlichen. Zum Beispiel fand ich in letzter Zeit, dass Indy 10.5.5 Mail-Nachrichtenanalyse Mail-Adressen abschneidet, was in 10.5.8 nicht passiert. Natürlich ist das Verhalten von 10.5.5 nicht akzeptabel, ich bin gezwungen, ein Upgrade durchzuführen ...

    
user160694 31.12.2010 13:04
quelle
2

Obwohl ich Delphi XE nicht selbst benutze, sondern die Version 2010. Ich war in der Lage, Indy-Komponenten mithilfe dieses Stack-Overflow-Posts auf die aktuellste Version zu aktualisieren: Schritt für Schritt Upgrade von Indy 10 in Delphi 2009

Ich weiß, dass die Frage für 2009 ist (aber die Antwort deckt auch das Jahr 2010 ab), aber es funktionierte für mich in der Version 2010, also denke ich, dass es Ihnen auch helfen wird. Ich würde empfehlen, dass Sie die Kommentare lesen, da es auch einige gute Hinweise gibt. Hoffe, das hilft.

    
Tommy Andersen 30.12.2010 23:46
quelle

Tags und Links