Mit MSBuild allgemein hab ich auch noch einige Problemchen.
Sowas wie $(OutputFileName) ist im AfterBuildScript öfters mal garnicht gesetzt und demnach leer, wenn man es dort verwendet,
obwohl eigentlich in einem in der DPROJ eingebundenen Script (CodeGear.Delphi.Targets, CodeGear.Common.Targets) gesetzt und auch geprüft wird, ob es gesetzt ist.
Warum es nicht geht, weiß ich nicht.
Als Bugfix generiere ich im FinalBuilder die fehlenden Variablen und übergebe sie als Parameter ans MSBuild.
Meine Vermutung war, dass er die *.target aus irgendeinem Grund nicht einbindet, was gut sein kann, da diese <Import>'s nur bei einem Exists macht.
Was aber auch noch ein perverser Bug ist, dass bei DllSuffix $(Auto) die Versionsnummern nicht in den Variablen $(OutputFileName) drin stehen, sowohl im InlineCompiler, als auch im MSBuild.
Also er erzeugt eine meine280.bpl, aber in den Variablen steht was von meine.bpl
Und außerdem hat Delphi nirgendwo eine Variable/Konstante/Registryeintrag, wo diese Nummern auslesbar sind.