Как обновлять программу на с# в своей же папке без админ. прав?
Программа устанавливается в "Program Files (x86)" на системный диск. Однако возникла проблема после установки в папку с программой невозможно ничего записать без админ. прав, в том числе и не получается обновлять файлы. Хотя вроде файлы заменяются в своей же папке. Включать в манифесте запрос админ прав при запуске не вариант, очень надоедливое сообщение.
Как быть? Какие есть варианты кроме очевидного пока что мне варианта устанавливать программу в AppData\Roaming (где в принципе вроде можно спокойно менять файлы и создавать)?
Если Вы пользуетесь для накатывания обновлений инсталлятором, там можно поставить галочку "удалять предыдущую версию". То-есть по сути в этом случае идёт переинсталляция программы.
А технологию ClickOnce для установки и обновлений Вы рассматривали?
Если честно первый раз слышу про ClickOnce. Есть какие то туториалы и обзоры, чтобы более подробнее понять что это за зверь. Это как то относится к магазину винды или это что то вроде универсальный инсталлятор для программ написанных на Visual Studio?
Посмотрел прикольно что автоматом публикует и отслеживает обновление. Но минус это обновление при запуске, я например предпочитаю делать это пока пользователь пользуется программой, а в след запуске он уже запустит новую версию. По сути даже не заметив и не потратив время в ожидании. Ну и второй минус это после каждого обновления выводится сообщение о запуске неизвестного приложения от неизвестного издателя. Так что идея хорошая, но как всегда страдает реализация))
Alex,
Обновления при инсталляции по ClicOnce можно назначить:
- при запуске;
- при выполнении;
- при нажатии кнопки (нужно вставить программный код).
По поводу предупреждения. Можно приобрести CodeSign и подписывать билды. Проблема будет решена. Вариант не копеечный, но вполне жизнеспособный.