Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Разрешение проблем с переменными среды в файле <AppName>.cfg в BDS2006

Delphi , ОС и Железо , Переменные окружения

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

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

ни

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

не работают. Однако

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

работает. Есть ли идеи, что я делаю не так?

Примечание: Мы используем BDS2006, поэтому MSBuild сейчас не вариант.

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

Альтернативный ответ

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

Комментарии:

Мне бы хотелось позже переиспользовать этот пакетный файл для других проектов с разными путями поиска. Поэтому я бы предпочел иметь проектно-зависимое содержимое в файле cfg. Ну, вы можете использовать отдельный файл .bat вместо файла .cfg, отделенный от основного пакетного файла сборки. Конечно, императивное утверждение не так элегантно, как спецификация опций, но с небольшой дисциплиной это очень хорошо работает. Я использую это дома все время для сборок (используя makefiles cygwin на работе). Ну, есть много опций: пакетный файл для каждого проекта. Пакетный файл проекта, устанавливающий несколько переменных среды и вызывающий основной пакетный файл сборки. Или Makefile, как задумал $deity для создания программных артефактов. Или nant, или ...

Подтвержденный ответ

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

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

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

Альтернативный ответ

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

Статья

В процессе разработки приложений на Delphi и Pascal часто возникает необходимость использовать переменные среды в файле <AppName>.cfg для управления различными настройками проекта. Однако, пользователи BDS2006 могут столкнуться с проблемой, когда переменные среды не расширяются в файле cfg.

Вопрос пользователя, описанный выше, является примером такой проблемы. Пользователь пытается использовать переменные среды в файле <AppName>.cfg, но они не расширяются. Однако, когда пользователь использует абсолютный путь к переменной среды, все работает нормально.

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

Один из альтернативных ответов, предложенный пользователем, заключается в передаче переменных среды как параметров командной строки для dcc32. Однако, пользователь предпочел бы держать проектно-зависимое содержимое в файле cfg, чтобы позже переиспользовать пакетный файл для других проектов с разными путями поиска.

Еще один альтернативный ответ заключается в использовании отдельного файла .bat вместо файла .cfg, отделенного от основного пакетного файла сборки. Этот файл .bat может устанавливать несколько переменных среды и вызывать основной пакетный файл сборки. Это может быть не так элегантно, как спецификация опций, но с небольшой дисциплиной это очень хорошо работает.

Также пользователь может использовать Makefile, как задумал $deity для создания программных артефактов, или nant, или другие инструменты сборки.

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

Наконец, пользователь может использовать Delphi 2006 без MSBuild, make или другого инструмента сборки, просто вызывая dcc32 при необходимости.

В заключение, пользователям BDS2006 следует знать, что DCC32 не поддерживает расширение переменных среды в файле cfg. Существует несколько альтернативных способов решения этой проблемы, и пользователь должен выбрать тот, который лучше всего подходит для его проектов.

Создано по материалам из источника по ссылке.

При создании пакетного файла для выпуска приложения на BDS2006 пользователь столкнулся с проблемой, что переменные среды не расширяются в файле <AppName>.cfg, хотя абсолютный путь работает нормально. Причина этой проблемы заключается в том, что DCC3


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Переменные окружения ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:42:21/0.0039181709289551/0