Wieso übergibt das Script in der Befehlszeile überhaupt ALLE Library-Paths an den Delphi Befehlszeilen-Compiler DCC32? Das ist doch völlig unlogisch und unnötig - es soll doch nur das
Indy-
Package compiliert werden!
Woher soll denn MSBuild wissen, welche der Pfade Units der
Indy-Bibliotheken enthalten?
DAS ist unlogisch.
Um herauszufinden, welche Units benötigt werden, wird ja bereits der Compiler benötigt und ebenso der Zugriff auf die entsprechenden Units. Deshalb gibt es rein logisch keinerlei Möglichkeit, vorher herauszufinden, welche Units benötigt werden, um dann die Pfade zu filtern und dann nur die dem Compiler zu füttern, die entsprechende Units enthalten.
Davon abgesehen macht das auch keinen Sinn, denn schon dafür wird ja ebenfalls die komplette Liste der Pfade benötigt.
Delphi ist schlicht fehlerhaft eingestellt, wenn so viele Pfade im Bibliothekspfad stehen. Außerdem dauert das Kompilieren dann natürlich auch viel länger.
Auch die Fehlermeldung "[Fatal Error] Cannot compile
package 'IndySystem280' which is currently required by Delphi 11." ist unlogisch da in sich widersprüchlich.
Du musst schon vorher das in Delphi integrierte
Indy entfernen, sonst klappt das nicht. Das vorhandene
Package wird aktuell von Delphi verwendet, deshalb diese Meldung.
In den meisten Fällen braucht man auch gar keine neuere Version von
Indy als die, die mit Delphi ohnehin schon mitgeliefert wird. Das sind nur wenige Spezialfälle.