TL; DR:
Поместите строку {$R 'aVersionInfo.res' 'aVersionInfo.rc'}
непосредственно под оператором Program один раз , затем выполните построение. Или используйте BRCC32 для принудительной первой сборки файла .RES
.
Длинная версия:
Ваше предположение, что строка:
{$R 'aVersionInfo.res' 'aVersionInfo.rc'}
находится в неправильном месте частично правильно.
Когда я изначально настроил использование файла .RC в Delphi XE2, у меня возникла та же проблема с немного другим кодом, иногда компилируемым, а иногда нет. Я пробовал варианты как:
{$R 'aVersionInfo.res' 'aVersionInfo.rc'}
{$R '.\aVersionInfo.res' '.\aVersionInfo.rc'}
но компилятор XE2 продолжал жаловаться на то, что файл RES не был найден, если его там действительно не было (обратите внимание, что это была моя первоначальная сборка).
Оказывается, сначала нужно поместить эту строку непосредственно под оператором Program :
program TTClient;
{$R 'VersionInfo.res' 'VersionInfo.rc'}
... а не рядом с вашим уже присутствующим
{$R *.res}
Затем вы строите свою программу один раз .
После этого вы можете переместить строку обратно в более логичное место:
{$R *.res}
{$R 'VersionInfo.res' 'VersionInfo.rc'}
По какой-то странной причине, когда Delphi «знает», что файл .rc является частью проекта, он больше не имеет значения, если вы тоже:
- разместите строку в другом месте
- есть файл .res или нет
Нет необходимости в прекомпиляции. Если файл .RC изменен, компилятор перестроит файл .RES, независимо от того, существовала более ранняя версия или нет.
Это странное поведение не очень помогает при первоначальной настройке этой системы ; - (
Есть и другие странные вещи, происходящие с анализом исходного кода проекта и созданием файла .dproj, который привел меня к этому решению, а именно:
Если вы переименуете файл .rc, это может снова вызвать у вас проблемы: в файле .dproj есть остатки, все еще указывающие на старый файл .rc, и компилятор пожалуется на то, что не нашел его. Вы должны отредактировать это старое имя из файла .dproj, чтобы это исправить.
Обратите внимание, что все это было под XE2, под другой версией YMMV .
Отредактировано, чтобы добавить: Возможно, вам все еще придется сражаться с Информация о версии XE2 не работает проблема.