Разрешение проблем с переменными среды в файле <AppName>.cfg в BDS2006Delphi , ОС и Железо , Переменные окруженияВ процессе создания пакетного файла для выпуска нашего приложения я хотел бы использовать переменные среды в файле <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 |