Установите приложение в окне 7 без UAC, используя C#
Когда я устанавливаю свое приложение C# в Windows 7, UAC всегда показывает. Я не вошел в систему как администратор, но я хочу, чтобы мое приложение было установлено без UAC. Можете ли вы дать мне способы, как это сделать?
4 ответа
Приглашение UAC показывает по любому числу причин, ни одна из которых не является "кодом внутри exe-функции, вызывающей функцию X или пытающейся записать на место Y". Они включают:
- имя содержит настройки, исправления, обновления и т. д. (например, setup21.exe), а манифест отсутствует
- Вы встроили манифест, который запрашивает requireAdministrator. Вы бы сделали это специально в Visual Studio.
- есть внешний манифест (для NewApp.exe это будет NewApp.exe.manifest) в той же папке, которая запрашивает requireAdministrator. Вы бы сделали это специально тоже.
- Вы щелкнули правой кнопкой мыши на исполняемый файл, и на свойства совместимости вы выбрали, чтобы поднять его или запустить как XPSP2, который для 7 также повышает
- кто-то в вашей компании применил групповую политику, чтобы это приложение установки работало с повышенными правами (маловероятно)
- однажды вы запустили его, получили диалоговое окно из Windows, в котором говорилось, что "это может не сработать", и согласились попробовать еще раз с "рекомендуемыми настройками".
Что-нибудь из этого кажется вероятным? Если это так, исправьте их и посмотрите, исчезнет ли запрос UAC.
Если вы хотите, чтобы ваше приложение было установлено без запуска UAC, установите в%APPDATA% (вместо установки в%ProgramFiles%) и пишите в куст HKCU только в реестре (т.е. не пытайтесь записывать в HKLM, HKCR, так далее.)
Если вы хотите установить приложение без UAC, то вы можете касаться только тех папок, в которые может войти зарегистрированный пользователь. Google Chrome делает это - он устанавливает все приложение в локальную папку данных приложения пользователя.
Это очень нестандартно, и я бы поспорил, что MS должен запретить запуск кода из этого места, но это рабочее решение, требующее доступа администратора /UAC для установки приложений.
Кстати, Google Chrome недавно сделал доступным традиционный установщик, так что один пользователь может установить его, чтобы его могли использовать все пользователи компьютера.
Текст ссылки на один пакет авторинга
Вы захотите использовать установщик Windows / установщик Windows XML, чтобы заставить эту установку вести себя так, как вы запрашиваете.