Вход на сайт
Uninstall in Setup project VS2005
226
NEW 09.08.09 23:43
всем привет! в VS2005 есть так называемый Setup project при помощи которого можно создать инсталяционную программку.
к сожалению там нет возможности прямо создать деинсталлационку. но можно прикрепить .bat с msiexec /x {бля бля бля}
Вроде работает нормально, но если в директории где была аппликация останутся файлы которых небыло
в самой инсталяции то этот орднер остается жить.
Как его можно автоматически убить вместе с оставшимся содержимым? у msiexec вроде нет такой опции...
к сожалению там нет возможности прямо создать деинсталлационку. но можно прикрепить .bat с msiexec /x {бля бля бля}
Вроде работает нормально, но если в директории где была аппликация останутся файлы которых небыло
в самой инсталяции то этот орднер остается жить.
Как его можно автоматически убить вместе с оставшимся содержимым? у msiexec вроде нет такой опции...
все что вы сделаете в интернете может быть использовано против вас!
NEW 10.08.09 00:03
про RMDIR я уже думал, и засунуть эго тоже в тотже .bat Но просто когда он запустится то msiexec физически
удалит этот .bat, если конечно сможет т.к. .bat будет для системы числится открытым. Во всяком случае, боюсь,
что к тому времени когда должен будет запустится RMDIR етого скрипта уже небудет...
в ответ Murr 09.08.09 23:50
В ответ на:
Набери в Комманд Промпте HELP RMDIR и будет тебе счастье... особенно в комбинации с RUN ONCE реестра.
Набери в Комманд Промпте HELP RMDIR и будет тебе счастье... особенно в комбинации с RUN ONCE реестра.
про RMDIR я уже думал, и засунуть эго тоже в тотже .bat Но просто когда он запустится то msiexec физически
удалит этот .bat, если конечно сможет т.к. .bat будет для системы числится открытым. Во всяком случае, боюсь,
что к тому времени когда должен будет запустится RMDIR етого скрипта уже небудет...
все что вы сделаете в интернете может быть использовано против вас!
NEW 10.08.09 00:21
хмм... к сожалению при инсталляции и деинсталяции непредусмотрен ресет машины.
но спасибо за совет
,
завтра попробую поковырятся....
в ответ Murr 10.08.09 00:14
В ответ на:
прописать в реестре разовое выполнение RMDIR при перезагрузке.
прописать в реестре разовое выполнение RMDIR при перезагрузке.
хмм... к сожалению при инсталляции и деинсталяции непредусмотрен ресет машины.

но спасибо за совет

завтра попробую поковырятся....
все что вы сделаете в интернете может быть использовано против вас!
NEW 10.08.09 12:07
Если нужна какая-то мелкая инстоляшка, то вполне пойдет. Если надо что-то больше, чем просто скопировать файлы, то используй либо InstallShield (стоит бабок), либо WiX (бесплатно).
В этом мне совсем не верится :)
Во-певых, есть ARP (Add/Remove Programs). И если ты умышлено не выключил создание записи в ARP (ARPSYSTEMCOMPONENT) и/или не выключил кнопку Remove (ARPNOREMOVE), то удалить можно и без танцев с батником. Кстати этот {бля бля бля} - это ProductCode, который в следующей версии будет другой -> должен быть другой батник :) А т.к. батник - это просто текстовый файл без версии, то при minor upgrade'е у тебя еще добавится танцев с бубном :)
Это технология msi, собтвенно говоря все правильно. Если инсталлер не скопировал/создал какой-то файл/запись в реесте, то он и не будет его удалять. Для этого есть таблица RemoveFile/RemoveRegistry и соответствующие экшены.
Вообще - создавать какие-то файлы в папке инстоляции - некошерно :) Хотябы только из-за того, что на Висте и Windows 7 доступ к Program Files разрешен только админам ;) Так что надо бы еще раз продумать что и куда писать.
Есть несколько вариантов:
1) Как я уже говорил, используй таблицы RemoveFile/RemoveRegistry и соответствующие экшены
2) Удалять свой мусор в кастом экшене
3) Всязь архитектора за яйца и вместе с ним прочитать книжку по msi :) И довести до его сведения, что во время работы программа не должна ничего писать в Program Files, для этого есть %appdata%.
в ответ viger2 09.08.09 23:43
В ответ на:
всем привет! в VS2005 есть так называемый Setup project при помощи которого можно создать инсталяционную программку.
всем привет! в VS2005 есть так называемый Setup project при помощи которого можно создать инсталяционную программку.
Если нужна какая-то мелкая инстоляшка, то вполне пойдет. Если надо что-то больше, чем просто скопировать файлы, то используй либо InstallShield (стоит бабок), либо WiX (бесплатно).
В ответ на:
к сожалению там нет возможности прямо создать деинсталлационку. но можно прикрепить .bat с msiexec /x {бля бля бля}
к сожалению там нет возможности прямо создать деинсталлационку. но можно прикрепить .bat с msiexec /x {бля бля бля}
В этом мне совсем не верится :)
Во-певых, есть ARP (Add/Remove Programs). И если ты умышлено не выключил создание записи в ARP (ARPSYSTEMCOMPONENT) и/или не выключил кнопку Remove (ARPNOREMOVE), то удалить можно и без танцев с батником. Кстати этот {бля бля бля} - это ProductCode, который в следующей версии будет другой -> должен быть другой батник :) А т.к. батник - это просто текстовый файл без версии, то при minor upgrade'е у тебя еще добавится танцев с бубном :)
В ответ на:
Вроде работает нормально, но если в директории где была аппликация останутся файлы которых небыло
в самой инсталяции то этот орднер остается жить.
Вроде работает нормально, но если в директории где была аппликация останутся файлы которых небыло
в самой инсталяции то этот орднер остается жить.
Это технология msi, собтвенно говоря все правильно. Если инсталлер не скопировал/создал какой-то файл/запись в реесте, то он и не будет его удалять. Для этого есть таблица RemoveFile/RemoveRegistry и соответствующие экшены.
Вообще - создавать какие-то файлы в папке инстоляции - некошерно :) Хотябы только из-за того, что на Висте и Windows 7 доступ к Program Files разрешен только админам ;) Так что надо бы еще раз продумать что и куда писать.
В ответ на:
Как его можно автоматически убить вместе с оставшимся содержимым? у msiexec вроде нет такой опции...
Как его можно автоматически убить вместе с оставшимся содержимым? у msiexec вроде нет такой опции...
Есть несколько вариантов:
1) Как я уже говорил, используй таблицы RemoveFile/RemoveRegistry и соответствующие экшены
2) Удалять свой мусор в кастом экшене
3) Всязь архитектора за яйца и вместе с ним прочитать книжку по msi :) И довести до его сведения, что во время работы программа не должна ничего писать в Program Files, для этого есть %appdata%.
NEW 12.08.09 00:10
Программист
Отличная идея! только вот незнаю уже кто именно архитектор, и где у него яйца?
так уж сложилось исторически, что за три года над каждой версией програмки работало уже куча народу.
Изначальная экстерная фирма разработчик саппорт не делает. Походу дела меняются потребности
но все руководствуются принципом "Never Touch a Running System" только вот "это" нужно
сделать и все!, и вот "это" все накапливается как снежный ком что проще наверное на данный момент
создать новый проэкт и концепт чем постоянно этот workaround... Но естественно никто нехочет брать
на себя такую ответсвенность, тем более за три недели до релиза...
Последние пол года программулькой занимался студент,
сейчас его уже нет и выясняется что там еще куча багов, тут пришлось
вспомнить что когдато я тоже читал книжку фор дамиес как можно нажимать кнопки в Visual Studio...
изначально, и для некоторых переменных до сих пор, сеттинги остаются в регестри, незнаю кто именно и когда это сделал, но сейчас большенство установок сохраняются
именно в файлах в Program Files апликации
упс... это серьезно? никогда еще под вистой неработал, представляю что будет когда будем под ней тестировать...
хммм, как раз на днях я это тоже осознал на собственной шкуре...
сейчас просто создаю батник с правильным ProductCode в сеттингах
прекомпиляции инстляционки... он там рядом написан Пока для внутренних релизов будем делать так, ендрелиз будем делать в InstallShield´е, вроде ктото в отделе
имеет лицензию...
Simple
да, подумав, решил всетаки не городить огород. Ети два пустых файла в которые программка записывает свои установки при исполнении,
просто запихнул в инсталяционку, чтоб при деинсталяции они автоматически удалялись. Иначе при первом запуске новой версии
со старыми установками программа грохнится... Ну вот так вот все там через одно место...
scorpi_
согласен
в ответ Программист 10.08.09 12:07

В ответ на:
3) Всязь архитектора за яйца и ...
3) Всязь архитектора за яйца и ...
Отличная идея! только вот незнаю уже кто именно архитектор, и где у него яйца?
так уж сложилось исторически, что за три года над каждой версией програмки работало уже куча народу.
Изначальная экстерная фирма разработчик саппорт не делает. Походу дела меняются потребности
но все руководствуются принципом "Never Touch a Running System" только вот "это" нужно
сделать и все!, и вот "это" все накапливается как снежный ком что проще наверное на данный момент
создать новый проэкт и концепт чем постоянно этот workaround... Но естественно никто нехочет брать
на себя такую ответсвенность, тем более за три недели до релиза...

Последние пол года программулькой занимался студент,
сейчас его уже нет и выясняется что там еще куча багов, тут пришлось
вспомнить что когдато я тоже читал книжку фор дамиес как можно нажимать кнопки в Visual Studio...

В ответ на:
И довести до его сведения, что во время работы программа не должна ничего писать в Program Files, для этого есть %appdata%.
И довести до его сведения, что во время работы программа не должна ничего писать в Program Files, для этого есть %appdata%.
изначально, и для некоторых переменных до сих пор, сеттинги остаются в регестри, незнаю кто именно и когда это сделал, но сейчас большенство установок сохраняются
именно в файлах в Program Files апликации
В ответ на:
Вообще - создавать какие-то файлы в папке инстоляции - некошерно :) Хотябы только из-за того, что на Висте и Windows 7 доступ к разрешен только админам ;) Так что надо бы еще раз продумать что и куда писать.
Вообще - создавать какие-то файлы в папке инстоляции - некошерно :) Хотябы только из-за того, что на Висте и Windows 7 доступ к разрешен только админам ;) Так что надо бы еще раз продумать что и куда писать.
упс... это серьезно? никогда еще под вистой неработал, представляю что будет когда будем под ней тестировать...

В ответ на:
Кстати этот {бля бля бля} - это ProductCode, который в следующей версии будет другой -> должен быть другой батник
Кстати этот {бля бля бля} - это ProductCode, который в следующей версии будет другой -> должен быть другой батник
хммм, как раз на днях я это тоже осознал на собственной шкуре...

прекомпиляции инстляционки... он там рядом написан Пока для внутренних релизов будем делать так, ендрелиз будем делать в InstallShield´е, вроде ктото в отделе
имеет лицензию...

В ответ на:
А чем тебе это мешает? Это же не твоя проблема, что юзер пихает в папку всякий мусор.
А чем тебе это мешает? Это же не твоя проблема, что юзер пихает в папку всякий мусор.
да, подумав, решил всетаки не городить огород. Ети два пустых файла в которые программка записывает свои установки при исполнении,
просто запихнул в инсталяционку, чтоб при деинсталяции они автоматически удалялись. Иначе при первом запуске новой версии
со старыми установками программа грохнится... Ну вот так вот все там через одно место...


В ответ на:
Ты не должен убивать то, что ты не устанавливал.
Ты не должен убивать то, что ты не устанавливал.
согласен
все что вы сделаете в интернете может быть использовано против вас!
NEW 12.08.09 09:54
Это проблема :)
В любом случае, инстоллер - это нечто более серьезное, чем просто склепанный на коленке msi :) При этом, что интересно, фирмы зачастую этого не осознают :)
Ну с реестром проблем нет, если это HKCU :) В HKLM в Висте и Windows 7, по дефолту, писать могут только администраторы (ну и те юзеры, которым дали соответствующие права)
С Program Files таже история :)
Все зависит от программы, в принципе можно в манифесте указать, что программа требует административных прав и тогда все будет ОК :)
Ну вот только у пользователей с админскими правами будет соотщение от UAC'а (если он включен), а у неадминов будет предложение залогиниться админом :)
Надеюсь речь идет о какой-то серьезной программе, а не об mp3 плейре
Зачем тебе вообще батник? Тебе мало удаления через ARP?
Книжку надо по MSI прочитать, а смена инструмента ничего не даст. Гвозди можно забивать и газовым ключом, и молотком, и топором и даже лопатой :)
Одно некошерное рещение заменяете другим :)
Не думаю, что пользователь будет рад тому, что его заставляют в новой версии программы по новой устанавливать все настройки :)
И второе, кто тебе вообще сказал, что оставлять данные после деинстоляции плохо? :)
После деинстоляции можно, и в коммерческих программах даже нужно, оставлять данные :) Иначе такие вещи как тестовая лиценззия на Х дней просто не будет работать ;)
в ответ viger2 12.08.09 00:10
В ответ на:
Отличная идея! только вот незнаю уже кто именно архитектор, и где у него яйца?
Отличная идея! только вот незнаю уже кто именно архитектор, и где у него яйца?
Это проблема :)
В любом случае, инстоллер - это нечто более серьезное, чем просто склепанный на коленке msi :) При этом, что интересно, фирмы зачастую этого не осознают :)
В ответ на:
изначально, и для некоторых переменных до сих пор, сеттинги остаются в регестри, незнаю кто именно и когда это сделал, но сейчас большенство установок сохраняются
именно в файлах в Program Files апликации
изначально, и для некоторых переменных до сих пор, сеттинги остаются в регестри, незнаю кто именно и когда это сделал, но сейчас большенство установок сохраняются
именно в файлах в Program Files апликации
Ну с реестром проблем нет, если это HKCU :) В HKLM в Висте и Windows 7, по дефолту, писать могут только администраторы (ну и те юзеры, которым дали соответствующие права)

С Program Files таже история :)
В ответ на:
упс... это серьезно? никогда еще под вистой неработал, представляю что будет когда будем под ней тестировать...
упс... это серьезно? никогда еще под вистой неработал, представляю что будет когда будем под ней тестировать...
Все зависит от программы, в принципе можно в манифесте указать, что программа требует административных прав и тогда все будет ОК :)
Ну вот только у пользователей с админскими правами будет соотщение от UAC'а (если он включен), а у неадминов будет предложение залогиниться админом :)
Надеюсь речь идет о какой-то серьезной программе, а не об mp3 плейре

В ответ на:
хммм, как раз на днях я это тоже осознал на собственной шкуре... сейчас просто создаю батник с правильным ProductCode в сеттингах
хммм, как раз на днях я это тоже осознал на собственной шкуре... сейчас просто создаю батник с правильным ProductCode в сеттингах
Зачем тебе вообще батник? Тебе мало удаления через ARP?
В ответ на:
прекомпиляции инстляционки... он там рядом написан Пока для внутренних релизов будем делать так, ендрелиз будем делать в InstallShield´е, вроде ктото в отделе
имеет лицензию...
прекомпиляции инстляционки... он там рядом написан Пока для внутренних релизов будем делать так, ендрелиз будем делать в InstallShield´е, вроде ктото в отделе
имеет лицензию...
Книжку надо по MSI прочитать, а смена инструмента ничего не даст. Гвозди можно забивать и газовым ключом, и молотком, и топором и даже лопатой :)
В ответ на:
Ети два пустых файла в которые программка записывает свои установки при исполнении,
просто запихнул в инсталяционку, чтоб при деинсталяции они автоматически удалялись. Иначе при первом запуске новой версии
со старыми установками программа грохнится... Ну вот так вот все там через одно место...
Ети два пустых файла в которые программка записывает свои установки при исполнении,
просто запихнул в инсталяционку, чтоб при деинсталяции они автоматически удалялись. Иначе при первом запуске новой версии
со старыми установками программа грохнится... Ну вот так вот все там через одно место...
Одно некошерное рещение заменяете другим :)
Не думаю, что пользователь будет рад тому, что его заставляют в новой версии программы по новой устанавливать все настройки :)
И второе, кто тебе вообще сказал, что оставлять данные после деинстоляции плохо? :)
После деинстоляции можно, и в коммерческих программах даже нужно, оставлять данные :) Иначе такие вещи как тестовая лиценззия на Х дней просто не будет работать ;)
NEW 12.08.09 10:15
в ответ viger2 12.08.09 00:10
У нас почти та же ситуация (разве что продукт уже довольно давно в наших руках, и ноухау какое-никакое уже восстановлено). Поначалу коллега, который уже ушел, сделал инсталлер на VS2005. Я продолжил его славное дело, но потихоньку задумался о переходе на NSIS (чтобы был завершенный процесс с CMake). Но пока я был в отпуске, шефиня переделала все по InstallShield, благо лицензия есть.
13.08.09 10:58
я тоже это раньше не осознавал...
да так вроде и раньше делали...
программка для узких прикладных специалистов но о серьзности которой никто незадумывался
пока на горизонте небыло видно термина сдачи, иначе бы ее недали делать студенту...
сказали "нужнО"! Шоб была в стартменю иконка на нее давиш и программка удаляется и чтоб
в "Control Panel" не лазить...
А что такое ARP? в гугле много вариантов... (надеюсь никто небудет тут надо мной смеятся за тупые вопросы...?
)
в ответ Программист 12.08.09 09:54
В ответ на:
В любом случае, инстоллер - это нечто более серьезное, чем просто склепанный на коленке msi :) При этом, что интересно, фирмы зачастую этого не осознают :)
В любом случае, инстоллер - это нечто более серьезное, чем просто склепанный на коленке msi :) При этом, что интересно, фирмы зачастую этого не осознают :)
я тоже это раньше не осознавал...

В ответ на:
в принципе можно в манифесте указать, что программа требует административных прав и тогда все будет ОК :)
в принципе можно в манифесте указать, что программа требует административных прав и тогда все будет ОК :)
да так вроде и раньше делали...
В ответ на:
Надеюсь речь идет о какой-то серьезной программе, а не об mp3 плейре
Надеюсь речь идет о какой-то серьезной программе, а не об mp3 плейре
программка для узких прикладных специалистов но о серьзности которой никто незадумывался
пока на горизонте небыло видно термина сдачи, иначе бы ее недали делать студенту...
В ответ на:
Зачем тебе вообще батник? Тебе мало удаления через ARP?
Зачем тебе вообще батник? Тебе мало удаления через ARP?
сказали "нужнО"! Шоб была в стартменю иконка на нее давиш и программка удаляется и чтоб
в "Control Panel" не лазить...
А что такое ARP? в гугле много вариантов... (надеюсь никто небудет тут надо мной смеятся за тупые вопросы...?

все что вы сделаете в интернете может быть использовано против вас!
NEW 13.08.09 11:02
да, куда еще хуже?... Будете смеятся но там такие вещи наделаны, например
GUI вызывает напрямую функции которые по опредению длятся по несколько минут
и все это без каких либо там разделений процессов и т.д. т.е. просто все виснет
пока незакончится функция... Я не информатик, и у меня мало опыта в программировании
под операционками, но я и то понимаю что так делать нельзя!
Одно только успакаивает что эта программка у нас не является основным продуктом,
а скорее второстепенным или даже третистепенным с ограниченными возможностями,
она дается юзеру бесплатно если покупает наши приборы, а с приборами можно работать и
без программки.
есть конечно у нас и профессионально сделанные прикладные пакеты но они стоят денег...
в ответ Simple 12.08.09 10:27
В ответ на:
Чуется мне, что их продукт еще хуже нашего, хотя казалось бы, куда хуже?! :-D
Чуется мне, что их продукт еще хуже нашего, хотя казалось бы, куда хуже?! :-D
да, куда еще хуже?... Будете смеятся но там такие вещи наделаны, например
GUI вызывает напрямую функции которые по опредению длятся по несколько минут
и все это без каких либо там разделений процессов и т.д. т.е. просто все виснет
пока незакончится функция... Я не информатик, и у меня мало опыта в программировании
под операционками, но я и то понимаю что так делать нельзя!
Одно только успакаивает что эта программка у нас не является основным продуктом,
а скорее второстепенным или даже третистепенным с ограниченными возможностями,
она дается юзеру бесплатно если покупает наши приборы, а с приборами можно работать и
без программки.
есть конечно у нас и профессионально сделанные прикладные пакеты но они стоят денег...
все что вы сделаете в интернете может быть использовано против вас!
NEW 13.08.09 11:50
Ну вобщем-то 3 года тому назад я тоже думал, что инсталлер - это фигня :)
Потом я попал в Installer Team :) (правда мы тут не только инсталлер делаем, но и целую deploy систему :))
Ну если юзеры работают в админском профайле и с выключенным UAC'ом, то можно и дальше так делать :)
Ну надо тогда просто шорткат добавить и все дела. Если не получится сделать прямой шорткат на msiexec /x {ProductCode}, то сделай так:
uninstall.bat
И ProductCode передавай как аргумент. В этом случае не надо будет каждый раз переписывать батник.
Хотя это извращение
Add/Remove Programms
в ответ viger2 13.08.09 10:58
В ответ на:
я тоже это раньше не осознавал...
я тоже это раньше не осознавал...
Ну вобщем-то 3 года тому назад я тоже думал, что инсталлер - это фигня :)
Потом я попал в Installer Team :) (правда мы тут не только инсталлер делаем, но и целую deploy систему :))
В ответ на:
да так вроде и раньше делали...
да так вроде и раньше делали...
Ну если юзеры работают в админском профайле и с выключенным UAC'ом, то можно и дальше так делать :)
В ответ на:
сказали "нужнО"! Шоб была в стартменю иконка на нее давиш и программка удаляется
сказали "нужнО"! Шоб была в стартменю иконка на нее давиш и программка удаляется
Ну надо тогда просто шорткат добавить и все дела. Если не получится сделать прямой шорткат на msiexec /x {ProductCode}, то сделай так:
uninstall.bat
В ответ на:
msiexec /x %1
msiexec /x %1
И ProductCode передавай как аргумент. В этом случае не надо будет каждый раз переписывать батник.
Хотя это извращение

В ответ на:
А что такое ARP?
А что такое ARP?
Add/Remove Programms