2009-07-09 2 views
1

Я пытаюсь создать простую версию пакета выпуска для нашего приложения. Я хотел бы использовать переменные окружения в файле <AppName> .cfg. Однако они, похоже, не расширяются. Ниdcc32: переменные окружения в * .cfg

-U"$(DELPHIKOMP)\VclZip;..." 

ни

-U"%DELPHIKOMP%\VclZip;..." 

работы. Однако

-U"C:\DelphiKomp\VclZip;..." 

страницами. Любая идея, что я делаю неправильно?

Обратите внимание: мы используем BDS2006, поэтому MSBuild на данный момент не является вариантом.

Обновление: Как предложил gabr, я написал небольшой инструмент, который расширяет переменные окружения в моем cfg и вызывает dcc32 для меня. Спасибо всем за их ответы!

ответ

2

DCC32 не поддерживает расширение переменных окружения.

Я уверен, что в Интернете есть утилита, которая расширяет все переменные в файле cfg, вызывает dcc32.exe и восстанавливает исходный файл cfg, но я больше не могу его найти.

Вы можете написать такую ​​программу довольно легко самостоятельно.

+0

Вот что я делаю прямо сейчас. :-) –

1

Почему бы не передать их в качестве параметров командной строки в dcc32 - в этом случае оболочка расширит их.

+0

Я хотел бы иметь возможность позже использовать этот командный файл для других проектов с разными путями поиска. Поэтому я бы предпочел, чтобы в файле cfg был конкретный материал для проекта. –

+0

Ну, вы можете использовать отдельный .bat-файл вместо файла .cfg, отделенный от основной сборки. Конечно, императивное утверждение не столь изящно, как спецификация опций, но с небольшим количеством дисциплины он очень работоспособен. Я использую его дома все время для сборки (используя cygwin makefiles в офисе). –

+0

Ну, есть много вариантов: пакетный файл для каждого проекта. Специфичный для проекта пакетный файл устанавливает несколько переменных env и вызывает командный файл master build. Или Makefile, как $ божество, предназначенное для создания артефактов программного обеспечения. Или nant, или ... – mghie

1

FWIW, используя Delphi 2006, не исключает возможности MSBuild или создания или другого инструмента построения; просто подойдите к dcc32 по мере необходимости.