2011-06-27 12 views
9

OK - mamy interesujący problem.Czy można ponownie skompilować pakiety DataSnap w Delphi XE z nową/inną wersją Indy?

Niektóre tła:

  1. Naszym głównym aplikacja używa Indy 10. Jednak bierzemy Indy 10 źródło i naprawić błędy w nim, skompilować i zainstalować nasz własny zestaw Indy komponentów.

  2. Przeprowadzamy migrację do Delphi XE i chcemy rozpocząć korzystanie z DataSnap.

  3. DataSnap wymaga "oficjalnej, wysyłkowej" wersji Indy, która jest niezgodna z naszą dostosowaną wersją Indy.

  4. Nasze serwery DataSnap będą oddzielnymi aplikacjami, ale ponieważ mamy mieć zainstalowany własny Indy w IDE, nie możemy "przekroczyć strumieni".

Ok, więc jesteśmy w stanie wykorzystać Delphi XE za DataSnap wyjęciu z pudełka powodu tej kwestii kompatybilności.

Więc moje pytania to:

Czy to możliwe, aby skompilować pakiety DataSnap w Delphi XE z nowej/innej wersji Indy?

Twoje myśli zostały przyjęte z wdzięcznością.

+0

Dlaczego DataSnap nie działa z wersją Indy? Czy zmieniasz interfejs? –

+0

Nigdy nie byłem w stanie znaleźć DPK dla tych pakietów. –

+0

@ David - Hmm. Niepewny. Sprawdzam ... i mówią, że nie wierzą w to. To może być droga do rozwiązania - zastosuj nasze poprawki do wersji wysyłkowej. Używamy nowszej wersji Indy, ale wersja XE może działać. –

Odpowiedz

3

powszechne przekonanie nie, nie jest to możliwe, ponieważ nie wszystkie źródła są dostarczane przez Embarcadero, a niektóre z tych źródeł są zależne od wersji Indy jako dostarczonej. (Co jest bardzo frustrujące dla użytkowników końcowych, ponieważ wersja Indy, która jest dostarczana z Delphi, jest stosunkowo nieaktualna i czasami wersja wybrana w tym czasie niekoniecznie jest bardzo dobra.)

zobacz sekcję SO pytanie: Is it possible to use Indy 10.5.8.0 in Delphi XE and DataSnap?

Zobacz także Indy stronę projektu: http://www.indyproject.org/Sockets/Docs/indy10Installation.de.aspx który stwierdza:

UWAGA: D/CB/RAD 2009+, DataSnap wykorzystuje Indy 10 wewnętrznie. Zainstalowanie nowej wersji Indy w wersji spowoduje, że DataSnap stanie się bezużyteczny, ponieważ nie będzie już w stanie ładować pakietów Indy. DataSnap jest kompilowany z pakietami Indy dostarczanymi wraz z IDE, a DataSnap nie może zostać ponownie skompilowany przez użytkowników końcowych . Jeśli potrzebujesz użyć DataSnap, , musisz zachować oryginalne pakiety Indy 10 o numerze do wykorzystania w projektach DataSnap .

Mówi się, że następna wersja powinna mieć nadzieję na łatwiejsze aktualizacje Indy.

+1

złota zasada: nigdy nie używaj komponentów bez pełnego kodu źródłowego – mjn

+4

Embarcadero zajmie się problemem DataSnap/Indy w nadchodzącym wydaniu XE2, aby użytkownicy mogli indywidualnie uaktualniać Indy'ego bez naruszania DataSnap. –

+1

@Mjn: problemem jest DataSnap to biblioteka Delphi ... nie powinieneś używać całego RTL/VCL, ponieważ nie masz pełnego kodu źródłowego (pakiety ...)! : D –

2

Jeśli uwzględnione jest całe źródło DataSnap, możliwe jest oczywiście użycie programu do analizy wykonywalnej PE w celu wykrycia, które klasy i jednostki są używane w BPL (ponieważ BPL są po prostu niestandardowymi bibliotekami DLL). Bardzo łatwy w użyciu jest dostarczany z GExpertami.

W BPLS linie lista eksport z GExperts \ PE Informacja mieć format podobny @xp $ @ [nn] [UnitName] @ [TypeName] (typów) i @ [UnitName] {@ [Typ >]} @ [Element globalny jednostki, jak procedury lub zmienne] (dla reszty).

Możesz zapisać tę listę do pliku, a GREP, aby uzyskać listę jednostek używanych na BPL.

Biura Przykłady (vcl140.bpl):

  • @ xp $ $ 11Forms @ TForm
  • @ Appevnts @ TCustomApplicationEvents @ Uaktywnij
  • @ ClipBrd @ Schowka
+0

+1 doskonała sztuczka. –

Powiązane problemy