У меня есть пакет Package1
, который зависит от пакета PackDependency
. .dpk из Package1
содержит это:
requires
vcl,
rtl,
PackDependency,
dbrtl;
Теперь я хочу иметь эту зависимость, только если определен условный символ CONDITION
.Поэтому я вручную изменяю файл .dpk на:
requires
vcl,
rtl,
{$IFDEF CONDITION}
PackDependency,
{$ENDIF}
dbrtl;
Но достаточно ли этого?Я беспокоюсь о файлах .dproj .
У меня есть два пакета, например Package1
, с которыми я хочу сделать выше.Один из них имеет следующую строку в файле .dproj :
<DCCReference Include="PackDependency.dcp"/>
Другие пакеты ' .dproj содержат , а не содержат этострока, хотя пакет также зависит от PackDependency
.
Это вызывает некоторые вопросы:
- Возможно ли
require
пакет, основанный на условном символе? - Если да, нужно ли что-то делать с файлом .dproj?И если да, могу ли я столкнуться с проблемами, если Delphi изменяет определенные области файла?
- Почему указанная выше строка
<DCCReference Include...>
включена в один из файлов .dproj, а не в другой (хотяоба пакета имеют зависимость в своих .dpk и также показаны в диспетчере проектов Delphi)? - Я подозреваю различное поведение при сборке из Delphi и из командной строки с использованием msbuild.Первый может заглянуть в файл .dpk - но неужели последний?
Моя конечная цель - сборка из командной строки с использованием msbuild.Такое разное поведение между командной строкой и IDE также является важной информацией для меня.