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

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

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

ClickOnce рулит.
+1

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

ClickOnce рулит.
+1

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

+1

разве что сервисы не ставитага, приходится с батниками извращаться
О, это как? Поделись рецептом, плиз :-)
...
Рейтинг: 0 / 0
03.03.2015, 18:31
    #38893991
lex452
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация обновления приложения
Как я заметил, при обновлении создается отдельная папка и в нее заново копируются все файлы, а мне необходимо например чтобы файл настроек на заменялся и без толку не копировались одни и те же файлы и не плодились папки с программой. Так же во время работы с программой в ее корне создаются некоторые папки и файлы, а после обновления этот "корень " меняется
...
Рейтинг: 0 / 0
03.03.2015, 18:40
    #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
03.03.2015, 18:40
    #38893995
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация обновления приложения
Install Shield, Advanced Installer вам в помощь. ClickOnce редчайшее дерьмо. Чтоб установить ClickOnce приложение через прокси сервер, надо жопу порвать на британский флаг..
...
Рейтинг: 0 / 0
03.03.2015, 18:42
    #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
03.03.2015, 18:56
    #38894010
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация обновления приложения
lex452Как я заметил, при обновлении создается отдельная папка и в нее заново копируются все файлы, а мне необходимо например чтобы файл настроек на заменялсяНастройки не заменяются, они объединяются.

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

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

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

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

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

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

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

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

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


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


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