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
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
[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
beginnenF.) 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 ...)
** 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.
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 ...
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.