AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Projekt mit Runtime-Packages compilieren - BPL nicht gefunden
Thema durchsuchen
Ansicht
Themen-Optionen

Projekt mit Runtime-Packages compilieren - BPL nicht gefunden

Ein Thema von Codehunter · begonnen am 6. Okt 2014 · letzter Beitrag vom 9. Okt 2014
Antwort Antwort
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#1

AW: Projekt mit Runtime-Packages compilieren - BPL nicht gefunden

  Alt 7. Okt 2014, 12:58
Danke für den Tip. Der sagt mir dass bei Win64 so ziemlich alles fehlt was nur fehlen kann. Sprich die ganzen Komponenten-BPLs. Alles was so schön in der IDE verschraubt ist.

Seltsam ist dabei nur, dass sich da die Win32- und Win64-Versionen meines Testprogramms unterschiedlich verhalten. Während meine Plugin.bpl auf Win32 außer vcl180.bpl und rtl180.bpl gar nichts weiter haben will, mokiert sich die Win64-Version so ziemlich über alles.

Getestet jeweils auf 100% "BPL-freien" Test-VMs.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.049 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Projekt mit Runtime-Packages compilieren - BPL nicht gefunden

  Alt 7. Okt 2014, 13:02
Danke für den Tip. Der sagt mir dass bei Win64 so ziemlich alles fehlt was nur fehlen kann. Sprich die ganzen Komponenten-BPLs. Alles was so schön in der IDE verschraubt ist.

Seltsam ist dabei nur, dass sich da die Win32- und Win64-Versionen meines Testprogramms unterschiedlich verhalten. Während meine Plugin.bpl auf Win32 außer vcl180.bpl und rtl180.bpl gar nichts weiter haben will, mokiert sich die Win64-Version so ziemlich über alles.

Getestet jeweils auf 100% "BPL-freien" Test-VMs.
Sicher, dass du Uwes Hinweis

Also muss ich das Ganze so verstehen, dass die IDE per Default erstmal jedes erdenkliche in der IDE registrierte Package in die Liste der Laufzeit-Packages einträgt und man dann her gehen muss und die nicht benötigten wieder abwählen muss?
Genau so ist es! Bei der Installation eines Design-Packages werden die dafür benötigten Runtime-Packages in diese (interne) Liste mit aufgenommen. Diese wird dann für neue Projekte herangezogen und sollte jeweils angepasst werden. Man will ja nicht alle möglichen Runtime-Packages mitliefern, nur weil man vielleicht eine Handvoll Units daraus braucht.
auch für die 64-bit Version deines Packages durchgeführt hast? Ansonsten sorge dafür, dass die ganzen 3rd Party Komponenten Packages auch in der 64-bit Version zur Verfügung stehen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#3

AW: Projekt mit Runtime-Packages compilieren - BPL nicht gefunden

  Alt 7. Okt 2014, 13:14
Also in meiner IDE gibt es bei den Projekteinstellungen keine nach Win32 und Win64 getrennte Package-Auswahl. Entweder man machts für alle Plattformen oder gar nicht. Was mich aber grad richtig nervt: Die abgewählten Packages speichert Delphi nicht in den Projekteinstellungen. Sprich nach dem nächsten Öffnen des Projektes kann man die ganze Auswahl wiederholen.

Mich würde interessieren, ob man nicht eine BPL so erstellen kann dass alle nötigen Laufzeit-BPLs direkt eingebunden sind (so wie wenn man in der IDE ohne Laufzeit-BPLs kompilieren einstellt) und man trotzdem eine eigene BPL dynamisch zur Laufzeit mit LoadPackage laden kann. Ist doch ein bisschen affig, die halbe VCL mit in die Distri zu packen...
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.049 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: Projekt mit Runtime-Packages compilieren - BPL nicht gefunden

  Alt 7. Okt 2014, 13:34
Also in meiner IDE gibt es bei den Projekteinstellungen keine nach Win32 und Win64 getrennte Package-Auswahl. Entweder man machts für alle Plattformen oder gar nicht.
Stimmt, eine der wenigen Einstellungen die für alles gleich ist.

Was mich aber grad richtig nervt: Die abgewählten Packages speichert Delphi nicht in den Projekteinstellungen. Sprich nach dem nächsten Öffnen des Projektes kann man die ganze Auswahl wiederholen.
Sollte eigentlich nicht der Fall sein, sondern die nicht angehakten sollten in der dproj unter <Excluded_Packages> gespeichert werden.

Mich würde interessieren, ob man nicht eine BPL so erstellen kann dass alle nötigen Laufzeit-BPLs direkt eingebunden sind (so wie wenn man in der IDE ohne Laufzeit-BPLs kompilieren einstellt) und man trotzdem eine eigene BPL dynamisch zur Laufzeit mit LoadPackage laden kann. Ist doch ein bisschen affig, die halbe VCL mit in die Distri zu packen...
Es gibt 2 Sachen, einmal die required Klausel in deinem Package. Dort wird angegeben, welche Dinge aus anderen Packages kommen, alles andere wird explizit in die BPL aufgenommen - da kommt bei Nichtbeachtung manchmal die Meldung nach dem Motto, hey du machst da grad VCL Zeugs in dein Package, was aber auch in Package XYZ enthalten ist. Dabei werden alle von der IDE geladenen Packages berücksichtigt. Im requires ist mindestens die RTL aufgelistet.
In deiner Hostanwendung stellst du ein, gegen welche Runtime packages gelinkt wird. Also eine Mindestkonfiguration würde dort nur dein Package auflisten - die RTL wird implizit benutzt, weil sie in deinem Package als requires steht.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#5

AW: Projekt mit Runtime-Packages compilieren - BPL nicht gefunden

  Alt 7. Okt 2014, 13:51
Moment, ich krieg grad irgendwie Hirnerweichung Also der Hostanwendung könnte ich beibiegen dass sie alle Laufzeitbibliotheken direkt eingebunden bekommt. Mein Package dagegen wird die entsprechenden BPLs immer anfordern? Denn eine Auswahl von Laufzeitbibliotheken ist bei meinem Package-Projekt gar nicht vorgesehen.

Ich dachte bisher, wenn die Hostanwendung das entsprechende Laufzeitpackage bereits enthält, würde sich mein dynamisch geladenes Package daraus bedienen. Scheint aber nicht so zu sein
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.049 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Projekt mit Runtime-Packages compilieren - BPL nicht gefunden

  Alt 7. Okt 2014, 14:03
Package requires Klausel

Was da drin steht, wird als Package benötigt. Was nicht drin steht und im Package Code benutzt wird, wird implizit ins Package kompiliert (siehe W1033). Oder auch der Popup Dialog der dann kommt und dir sinngemäßg mitteilt "Hör mal, du nutzt hier nen paar Units, die schon in nem anderen Package sind und eine Unit kann nicht in 2 Packages gleichzeitig sein und wenn das andere Package auch in deiner Anwendung ist, knallts. Willste nicht lieber das andere Package in dein requires aufnehmen?"

Hostanwendung

Bei Projekt Optionen->Packages->Runtime packages den Haken setzen und dort alle Packages eintragen, aus der sich die Anwendung (also die exe) bedienen soll. Alles andere, was die Anwendung benutzt und nicht aus diesen Packages bezogen werden kann, wird hineinkompiliert.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#7

AW: Projekt mit Runtime-Packages compilieren - BPL nicht gefunden

  Alt 7. Okt 2014, 14:27
Ok so langsam wirds klarer. Hostanwendung verstanden. Sieht man ja auch an den Dateigrößen der Host.exe wenn man RTL und VCL einkompiliert oder nicht.

Zu meinem Package: Wenn ich dich richtig verstehe, dann muss ich gemeinsam genutzte Units, die in Host und Package gleichzeitig verwendet werden, in einem externen Package unterbringen. Ok ergibt auch Sinn wenn man sich überlegt was der interface-Abschnitt einer Unit so alles macht.

Was ich noch nicht so ganz durchschaue ist, wie die ganzen implizit eingebundenen Units/Packages zustande kommen. Als Beispiel nenne ich mal UniDAC, das ich zwar in der IDE installiert habe, aber in einem völlig "nackten" VCL-Projekt mit Sicherheit nicht verwendet würde. Trotzdem will die IDE das erstmal in die EXE verbauen. Und ich muss dass quasi in einer Art Blacklist explizit unterbinden. Wäre es nicht sinnvoller, eine Art Whitelist mit den gewollten Packages anzugeben?
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz