Название: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: Sergey B. от Октябрь 15, 2007, 14:29 Привет,
столкнулся с проблемой уже не раз обсуждавшейся, потому делюсь решением. При компиляции программы компилятором от M$ с установленным сервис паком, столкнулся с тем что программа не запускалась на компьютере без студии, при запуске выводя сообщение, о том что: Код: "This application has filed to start because the application configuration is incorrect." и т.д. Просмотр зависимостей, дал картину о необходимости установки библиотек из папки: Код: C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\ Соответственно я положил эти файлики вручную в папку с программой и она теперь стала запускаться, но начала писать об отсутствии драйвера. Код: "Driver not load" Различные варианты с созданием подпакок Microsoft.VC80.CRT и перноса этих фалов туда, не дали результат тоже. А решение, такое, необходимо скачать файл vcredist_x86.exe (для архитектуры) по адресу: http://www.microsoft.com/downloads/details.aspx?FamilyID=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=en (http://www.microsoft.com/downloads/details.aspx?FamilyID=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=en) Это называется: "Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)" И установить на целевом компьютере, после чего драйвер становится виден и программа работает корректно. M$ в очередной раз намудрила, и видимо инсталлятор где-то прописывает много чего ещё, помимо того что копирует необходимые файлы. Структура программы: appdir-- -----sqldrivers --------------qsqlpsql.dll -----qtcore4.dll -----qtgui4.dll -----qtsql4.dll -----*.dll (все из папки "PostgreSQL\bin") Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: DmP от Октябрь 15, 2007, 15:05 Код: "This application has filed to start because the application configuration is incorrect." и т.д. Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: Sergey B. от Октябрь 15, 2007, 15:25 Многие, но не эту (с плагином).
Я отписал всё подробно, начиная с первых ступеней подготовки пакета, чтобы не гонять по форумам тех кто первый раз сталкивается с этой проблемой, а собрал всё в одном месте. Чтоб прочитал, сделал так же. Кстати с MingW таких проблем нет. :) Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: Вячеслав от Октябрь 16, 2007, 09:29 Кстати с MingW таких проблем нет. :) Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: Tonal от Октябрь 16, 2007, 10:10 Можешь добавить, если тебе почему-то с ними веселее. ;-)
Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: Вячеслав от Октябрь 16, 2007, 11:04 Мне - пофиг ;) А в форточки оччень редко вылезаю. Хотя сама идея была хорошая(IMHO) - хоть какая-то защита от загрузки левых длл в форточках ... Но реализация "Акуеть" (с) ... особенно веселит , что если на машине нет нужного фреймворка то прога молча _не запускается_ :(
Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: T800 от Октябрь 17, 2007, 00:33 Потому что оснавная позиция мелкософта - надо создавать MSI пакеты. Кстати если студия Про ничего качать не надо - этот файлик и многие есть в комплекте дистрибутива (и без него студия то тоже не ставится). Если создаешь пакет установки из самой студии, создав проект Deployment в том же Workspace и указываешь выход проекта твоей программы как файл к установке остальное студия добавит автоматически (определив runtime dependencies - "все что нужно для запуска" - проекта)
Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: Вячеслав от Октябрь 17, 2007, 10:52 Не "Все что нужно" , а что она может найти ;) если проект использует внешний плагин не включенный в солюшен - то фиг он будет в msi (если ручками не положешь) .... Так-что все-равно думать надо, как-бы не хотелось M$ от этого отучить (думать) ;) ;)
Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: T800 от Октябрь 17, 2007, 12:50 Прошу прощения я солюшн по привычке ворспейсом назвал. Да, это так, если использовать внешние (чужие)модули, придется проводить исследования. Есть в тулзах старой студии такая программа - Dependencies. Она же есть во всех SDK. Назначение - посмотреть какие dll-ки импортирует модуль. Остается только проблема , как узнать какие COM+ объекты используются прошраммой (если код не известен)
З.Ы. Отучить МС не удасться... они идут в этом направлении очень давно. Попробуй запустить сторонний экзешник под Вистой - там операционна "обматерит" пользователя, программу, ее изготовителя, тех, кто ставил антивирус и поставит его (экзешник, не антивирус) в "черный список". если сможет, еще и в инет нажалуется. Такая вот у них концепция безопасности. Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: Вячеслав от Октябрь 17, 2007, 13:32 Прошу прощения я солюшн по привычке ворспейсом назвал. Да, это так, если использовать внешние (чужие)модули, придется проводить исследования. Есть в тулзах старой студии такая программа - Dependencies. Она же есть во всех SDK. Назначение - посмотреть какие dll-ки импортирует модуль. Остается только проблема , как узнать какие COM+ объекты используются прошраммой (если код не известен) Dependencies покажет только модули на которые есть прямые ссылки ввиде импорта ;) А если плаг грузиться в динамике QLibrary или QPluginLoader - то фиг оно найдет ;) Это уже AI нужен ;D ;DЗ.Ы. Отучить МС не удасться... они идут в этом направлении очень давно. Попробуй запустить сторонний экзешник под Вистой - там операционна "обматерит" пользователя, программу, ее изготовителя, тех, кто ставил антивирус и поставит его (экзешник, не антивирус) в "черный список". если сможет, еще и в инет нажалуется. Такая вот у них концепция безопасности. Про думать - я имел ввиду пользователей - хош-не хош , а про внешние модули надо самому помнить и не надеяться что "M$ сам все положит" ;) Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: T800 от Октябрь 17, 2007, 21:14 "если ты пользователь, то программа должна быть установлена. Если девелопер - пускай из Visual Studio" - вот в чем их концепция. "А так как программы могут испльзовать разные подверсии этой библиотеки , то она должна лежать в соответствующем месте и привязана в реестре к данной программе. Поэтому для кажной программы в комплекте должен идти пакет установки. Почему перестал работать способ с укладыванинием их в один каталог с программой? Потому что эти библиотеки содержат привелигированный код да и считаются well known application component, а следовательно через них возможна атака на систему если они не будут защищены. Теперь их запихивают туда , куда пользователю или сетевой службе доступа нет да еще защищают с помощью SFС - System File Control (для каталогов программ SFC по умочнанию выключен).
Dependency студии и результаты работы программы Dependency никак не связаны. Студия пользуется метадирективами в файлах проекта и заголовках. MS не знает ничего если Тrolltech не прописала мета-директивы в текстах QT для студии. Там есть такие, которые указывают на то, какие пакеты нужны - например они используются в новых SDK, MFC и ATL и заголовках runtime library - той, самой которой не хватало автору этого треда. Речь так же идет о статической импорте , COM объектах. конечно, о динамическом импорте придется заботиться программмисту. Если пакет установки делает другой человек, то скорее стоит прописать нужные модули где-нибудь в заголовках проекта (или задокументировать иным способом). З.Ы. У меня 2005-я студия создала msi для примера и включила туда нужные библиотеки. )) Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: Вячеслав от Октябрь 17, 2007, 22:04 Ну в общем дошли до логического конц IMHO ;) Есть предложние 1) тему закрыть 2) Начать клепать фак\вики
Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: Sergey B. от Октябрь 18, 2007, 05:25 Wiki!
Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: Вячеслав от Октябрь 18, 2007, 07:41 +1
Товарищи админы , может реально начать ? Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: Lion от Октябрь 19, 2007, 14:45 З.Ы. У меня 2005-я студия создала msi для примера и включила туда нужные библиотеки. )) А можно подробнее как создавать msi из студии.Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: Вячеслав от Октябрь 19, 2007, 15:34 Solution -> add new project-> setup and deployment
А далее по тексту ж) Название: Re: VC++ Express 2005 SP1 && Qt 4 deployment. Отправлено: Sergey B. от Октябрь 20, 2007, 09:35 Только в VC++ Express этого нет.
http://www.microsoft.com/Rus/Msdn/vs/versions.mspx (http://www.microsoft.com/Rus/Msdn/vs/versions.mspx) Название: Re: VC Express 2005 SP1 && Qt 4 deployment. Отправлено: T800 от Октябрь 29, 2007, 05:57 черт а это отдельный продукт - VC Express изолированный от цельной студии... там почти ничего нет ( дистрибутив - 80 Мб) У тебя даже latform SDK там на самом деле урезанный (в заголовки не влючено редко используемое) И генератора классов нет - хотя если используешь T он тебе не нужен.
|