powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Реализация обновления приложения
18 сообщений из 18, страница 1 из 1
Реализация обновления приложения
    #38892787
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь реализовать обновление приложения. Реализую это следующим способом.
При нажатии на кнопку я получаю имя запущенного приложения, потом ищу файл с таким же именем в указанной папке
сверяю их версии при помощи
Assembly.LoadFrom(path).GetName().Version.
В случае наличия новой версии, я переименовываю текущую сборку и копирую новую версию, потом запускаю ее при помощи processinfo и закрываю текущую.
Основной проблемой является то что при использовании Assembly.LoadFrom(path) файл который проверяется становится занятым и не дает себя удалить пока не перезапустишь приложение. Но вроде решение нашел (но еще на проверял), что
curVersion = AssemblyName.GetAssemblyName(fi.FullName).Version;
не занимает файл.

У кого какие мысли, как вам этот способ обновления может есть более интересные решения?
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38892875
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фтопку

ClickOnce рулит.
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38893220
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyфтопку

ClickOnce рулит.
+1

разве что сервисы не ставит
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38893387
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как сделать чтобы он приложение в определенный каталог устанавливал, а не в c:\user...
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38893633
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452А как сделать чтобы он приложение в определенный каталог устанавливал, а не в c:\user...
никак, а зачем?
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38893717
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Antonariyфтопку

ClickOnce рулит.
+1

разве что сервисы не ставитага, приходится с батниками извращаться
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38893746
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyArm79пропущено...

+1

разве что сервисы не ставитага, приходится с батниками извращаться
О, это как? Поделись рецептом, плиз :-)
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38893991
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я заметил, при обновлении создается отдельная папка и в нее заново копируются все файлы, а мне необходимо например чтобы файл настроек на заменялся и без толку не копировались одни и те же файлы и не плодились папки с программой. Так же во время работы с программой в ее корне создаются некоторые папки и файлы, а после обновления этот "корень " меняется
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38893993
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Antonariyпропущено...
ага, приходится с батниками извращаться
О, это как? Поделись рецептом, плиз :-)Да какой там рецепт, просто две строчки записываются в bat-файлы

install.bat
Код: c#
1.
2.
%windir%\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe MyService.exe
pause



uninstall.bat
Код: c#
1.
2.
%windir%\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /u MyService.exe
pause


пауза для того, чтобы консоль не закрылась, и было видно результат установки/удаления.
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38893995
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Install Shield, Advanced Installer вам в помощь. ClickOnce редчайшее дерьмо. Чтоб установить ClickOnce приложение через прокси сервер, надо жопу порвать на британский флаг..
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38893996
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyArm79пропущено...

О, это как? Поделись рецептом, плиз :-)Да какой там рецепт, просто две строчки записываются в bat-файлы

install.bat
Код: c#
1.
2.
%windir%\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe MyService.exe
pause




uninstall.bat
Код: c#
1.
2.
%windir%\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /u MyService.exe
pause



пауза для того, чтобы консоль не закрылась, и было видно результат установки/удаления.
а кто из запускает то? и права для этого нужны админские
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38894010
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452Как я заметил, при обновлении создается отдельная папка и в нее заново копируются все файлы, а мне необходимо например чтобы файл настроек на заменялсяНастройки не заменяются, они объединяются.

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

lex452Так же во время работы с программой в ее корне создаются некоторые папки и файлы, а после обновления этот "корень " меняетсяА это не проблема. Просто нужно создавать свои папки не в папке программы, а в папке %users%\UserName\AppData\Roaming или \Local

Первая папка перемещается вместе с профилем пользователя по компьютерам домена, вторая прибита гвоздями к конкретному компу.
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38894013
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79а кто из запускает то?Хочешь - какой-нибудь инсталлятор, не хочешь - руками.

А вообще есть идея.

Можно написать программу-инсталлятор сервиса, которая инсталлируется и обновляется кликвансом, а сервис сделать ее компонентом. При ее запуске проверять наличие старого сервиса, делать ему \u, регистрировать новый.

Arm79 и права для этого нужны админскиеЕстественно. С каких это пор у простых юзверей есть права сервисы мацать? Они их даже останавливать и запускать прав не имеют.
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38894085
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Antonariy]lex452Как я заметил, при обновлении создается отдельная папка и в нее заново копируются все файлы, а мне необходимо например чтобы файл настроек на заменялсяНастройки не заменяются, они объединяются.

Что значит объединяются? Если в файле настроек есть настройка путь к каталогу, которую пользователь уже изменил, то при обновлении программы она перезапишется новым значением, а не объединится
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38895150
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Antonariylex452 и без толку не копировались одни и те же файлы и не плодились папки с программой. Это задача без решения в ClickOnce, да. Пока. Но не проблема, если программа не весит несколько сот метров.

Просто не надо понтоваться и ставить галку "Автоматически увеличивать номер редакции после каждой публикации"
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38895168
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Antonariyпропущено...
Это задача без решения в ClickOnce, да. Пока. Но не проблема, если программа не весит несколько сот метров.

Просто не надо понтоваться и ставить галку "Автоматически увеличивать номер редакции после каждой публикации" А она не перестанет после этого обновляться?
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38897334
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
AntonariyCat2пропущено...


Просто не надо понтоваться и ставить галку "Автоматически увеличивать номер редакции после каждой публикации" А она не перестанет после этого обновляться?
Нормально обновляется.
...
Рейтинг: 0 / 0
Реализация обновления приложения
    #38897930
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как будет определяться что версия новая если номер редакции не изменился?
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Реализация обновления приложения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]