Помогите с Inno Setup и XP, непонятная проблема

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Помогите с Inno Setup и XP, непонятная проблема

Сообщение Pantalone » 22.08.2012 (Ср) 21:03

Ребят, по какой причине Inno не хочет заменять файл в папке system32 винды XP? Винда чистая.
Дата создания и изменения нового файла больше старого, версия тоже больше, старый 6.0.72.9589, новая 6.1.0.9744
Пытаюсь установить с такими параметрами:

PrivilegesRequired=poweruser
Source: "В:\dll\expsrv.dll"; DestDir: "{sys}"; Flags: restartreplace uninsnosharedfileprompt

Происходит установка, проверяю файл, а он старый. Система не ругается, что пытаются заменить файл. Но если вручную удалить этот файл из системы (при этом система ругается) и запустить установку, то новый файл появляется на нужном месте.
Что это может быть за проблема такая, поделитесь соображениями.

ignoreversion тоже не помогает. Пробовал confirmoverwrite, запроса на перезапись не появляется. Ради интереса попробовал regserver, хотя файл это не поддерживает, но установка ругнулась, что не может его зарегать. Какая-то ерунда короче, файл не заменяется, но при попытке его зарегать вылезает ошибка, значит все-таки доступ к старому файлу есть, но менять его не хочет.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Помогите с Inno Setup и XP, непонятная проблема

Сообщение Хакер » 22.08.2012 (Ср) 21:16

Правильно не хочет.
SxS
DLL Hell

К тому же restartreplace. Это перемещение идёт с флагом MOVEFILE_DELAY_UNTIL_REBOOT, и делается запись в реестре, а реальное перемещение будет выполнено только после перезагрузки.

Ты пишешь «происходит установка, проверю файл». Значит перезагрузку ты не делаешь, не ждёшь, не проверяешь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Re: Помогите с Inno Setup и XP, непонятная проблема

Сообщение Pantalone » 22.08.2012 (Ср) 21:36

Нет, перезагрузка нужна только если файл занят и заменить его нет возможности, тогда сетап сам скажет, что надо перегрузиться, вот из хелпа:
restartreplace
When an existing file needs to be replaced, and it is in use (locked) by another running process, Setup will by default display an error message. This flag tells Setup to instead register the file to be replaced the next time the system is restarted (by calling MoveFileEx or by creating an entry in WININIT.INI). When this happens, the user will be prompted to restart their computer at the end of the installation process.

А файл не занят, я его спокойно могу руками удалить, т.е. его не используют в этот момент.
DLL-hell тут не при чем, обычная замена файла новой версией. Это не файл системы, а относится к Jet и DAO или как-то так.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Помогите с Inno Setup и XP, непонятная проблема

Сообщение Хакер » 22.08.2012 (Ср) 22:23

Pantalone писал(а):DLL-hell тут не при чем, обычная замена файла новой версией. Это не файл системы, а относится к Jet и DAO или как-то так.

Как будто DLL Hell не относится к Jet и DAO.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Re: Помогите с Inno Setup и XP, непонятная проблема

Сообщение Pantalone » 22.08.2012 (Ср) 22:57

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

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Помогите с Inno Setup и XP, непонятная проблема

Сообщение Хакер » 22.08.2012 (Ср) 23:15

По нашему надо наконец понять, что подобные ситуации надо разруливать с помощью механизма SxS, а не тупо заменой файла. Причём это если речь идёт о DLL, с которыми работа идёт с помощью обычного импорта. Для inprocess COM-серверов проблемы, например, нет вообще: можно иметь несколько серверов различных версий в разных местах, каждый раз будет использоваться нужный, потому что клиенты запрашивают создание экземпляра по CLSID-у.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Помогите с Inno Setup и XP, непонятная проблема

Сообщение Хакер » 22.08.2012 (Ср) 23:17

Это, к слову, не имеет отношения к проблеме. Вернее, это не предположение о причинах того, что ожидаемое поведение не соответствует действительному. По этому поводу можно только посоветовать взять ProcMon и посмотреть, что инсталлятор пытается делать и насколько удачно это выходит.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 74

    TopList  
cron