Вопрос о написании фонового / автоматического / тихого загрузчика / установщика для приложения на C #

Справочная информация:
У меня есть основное приложение, которое должно иметь возможность выходить в Интернет и загружать связанные с ним DLL-файлы (те, которые мы пишем, расположенные на нашем сервере ). Она действительно должна иметь возможность загружать эти DLL-файлы в папку приложения в "C: \ Program Files \". В прошлом я использовал System.Net.WebClient для загрузки любых файлов, которые я хотел из Интернета.

Проблема
У меня было много проблем с загрузкой данных в прошлом и сохранением в файлы на жестком диске пользователя. Я получаю много сообщений о том, что пользователи говорят, что это не работает, и, как правило, из-за проблем с правами пользователей в программе.

В случаях, когда возникала проблема с правами пользователя программы, каждый пользователь мог перейти к точному расположению файла в Интернете, загрузить его, а затем вручную сохранить в нужном месте.

Я хочу, чтобы это работало как все другие программы, которые я видел, загружаются / устанавливаются в этой модели (например, обновления Firefox Pluign, Flash Player, JAVA, Adobe Reader и т. д.). Все это работает без сбоев.

Вопрос
Есть ли какой-то код, который мне нужно использовать, чтобы дать моей программе-загрузчику специальные права на папку Program Files? Могу я вообще это сделать? Есть ли лучший класс или библиотека, которые мне следует использовать? Есть ли другой подход к загрузке файлов, который мне следует использовать, например, использование потоков или чего-то еще для загрузки данных?

Любая помощь здесь приветствуется. Я хочу стараться держаться подальше от сторонних приложений / библиотек, если это вообще возможно, кроме Microsoft, конечно, из-за проблем с лицензированием, но все же присылайте свои предложения мне.

Опять же, у других программ, похоже, есть проблемы с правами и возможностью загрузки. Мне нужна такая же возможность.

12
задан Mike Webb 11 February 2011 в 19:48
поделиться