![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| andrey_pro |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 21.9.2007 Репутация: нет Всего: нет |
Всем привет, нужна подсказка как лучше сделать.
Есть моя программа написанная на .NET. Она весит 1 Мб. Состоит из 4 файлов. Мне нужно чтобы при запуске программы проверялось наличие новой версии на сайте (куда я буду выкладывать) и если найдена новая версия то автоматически обновлять программу. Как лучше сделать? |
|||
|
||||
| ДобренькийПапаша |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 14.1.2006 Где: г.Москва Репутация: нет Всего: 7 |
Если я не ошибаюсь надо пояндексить технологию ClickOnce.
Приложение ClickOnce имеет два XML-файла-манифеста:манифест приложения и манифест развёртывания. Задать свойства и создать публикацию в Visual Studio можно во вкладке Publish окна Project Properties. Publish Wizard можете воспользоваться. Ограничения ClickOnce: 1)Не поддерживается инсталляция драйверов. 2)Не поддерживается инсталляция в GAC. 3)Нельзя добавить приложение в группу начального запуска. 4)Нельзя добавить приложение в меню "Избранное" -------------------- Меня зовут Себастьян Парейра, торговец чёрным деревом. |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
Ну как вариант, можно свой написать велосипед. Пишется отдельная програмулина-запускальщик основной (или, попросту вся программа выносится в библиотеку, а в exe остается только запускальщик). Ну и дальше ручками проверяем, закачиваем если надо и продолжнаем работать...
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| andrey_pro |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 21.9.2007 Репутация: нет Всего: нет |
1. Если ClickOnce:
Я делаю обфускацию своего приложения. Как будет обфускация дружить с ClickOnce? Как варианты решения? 2. Если своя программа-запускальщик: Она будет обновлять файлы программы при необходимости. А как она будет дружить с безопасностью Vista/7. На сколько я знаю в этих осях очень строгая политика в Program Files и могут быть проблемы при обновлении ... прав не хватит или еще чего. Как быть? |
|||
|
||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 5 Всего: 9 |
пишите в IsolatedStorage туда всегда прав хватит или C:\Users\CurrentUser\AppData\Local По правильному логику надо реализовывать в dll-ках и при обновлении выпускать новые dll-ки. |
|||
|
||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 5 Всего: 9 |
...
Это сообщение отредактировал(а) Heinzz - 8.1.2010, 19:56 |
|||
|
||||
| Zakonnic |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 25.4.2006 Репутация: 2 Всего: 6 |
С ClickOnce не все так просто. Это средство в основном для удобного распространения небольших приложений внутри локальной сети компании, поэтому установка происходит не в ProgramFiles, а в особую папку со случайным названием в профиле пользователя. На деле это означает возможные проблемы с настройками и путями, так как новые версии будут устанавливаься в другие папки.
Написание собственного велосипеда мне видится более надежным и управляемым способом. Кроме того, зачем упускать такой шанс получить удовольствие? --------------------
...и никогда не пишите в комментариях правду |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| andrey_pro |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 21.9.2007 Репутация: нет Всего: нет |
А можно с этим поподробнее. Вот у меня не большое приложение ~1мб (установщик) Пользователь запускает установщик и по умолчанию ставит в Program Files. При запуске программа проверяет наличие новой версии на сайте и если находит надо обновить программу. Вопрос КАК??? и куда должен писать новые dll |
|||
|
||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 5 Всего: 9 |
Isolated Storage те права для записи в Isolated Storage имеют даже приложения Internet_Zone! Пусть Ваше приложение пишет туда dll-ки и например загружает их динамически. Динамическое связывание рекомендовано для PlugIn-ов. зы Если хотите могу скинуть примерчик по связыванию где меняется функциональность программы. Добавлено через 6 минут Чтобы писать в ProgramFiles - нужны админские привелегии которые не всегда есть + даже если есть в Vista и W7 лезут окна подтверждения действия, тк даже админ там без подтверждения в окошке имеет лишь права опытного пользователя. А вот писать в C:\Users\CurrentUser\AppData\Local админские права не нужны. Посмотрите туда, наверняка какие-то программы там у Вас уже прописались Добавлено через 7 минут и 24 секунды зы файлы IsolatedStorage специфичные для пользователя там и находятся |
|||
|
||||
| andrey_pro |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 21.9.2007 Репутация: нет Всего: нет |
||||
|
||||
| Heinzz |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 5 Всего: 9 |
Программа загружает все dll-ки из своей папки в меню и пользуется той которую выберет пользователь.
первая dll-ка -ввод имени, специальности, возраста в винформс.
вторая dll-ка - консольный ввод той же информации
Библиотек можно сделать сколько угодно. те мы можем подключить любой класс из библиотеки через reflection и вызывать методы в нем реализованные. Так в новой версии можно реализовать проверку правильности ввода полей или сделать ее под web-интерфейс. Здесь я не выделил какой-то интерфейс который надо реализовывать плагину чтобы быть плагином для этой программы, но надо бы. Так было бы проще при создании нового класса обновлений занаследовался от этого интерфейса и забил в него функциональность. |
||||||
|
|||||||
| dazy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 1 Всего: 8 |
Учтите, что с isolated storage тоже не все так просто. В принципе различные политики безопасности (читай корпоративные админы) могу урезать выделяемое место. Понятно, что могут урезать и до нуля. В разных версиях винды путь до Application Data различный. Да, и работать с isolated storage нужно через специальный класс. В общем, курите внимательно.
|
|||
|
||||
| userdab |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 3.9.2010 Репутация: нет Всего: нет |
Про автоматическое обновление программы и ClickOnce можно почитать здесь
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |