Visual Studio создала установщики MSI, программные файлы и доступ администратора - PullRequest
2 голосов
/ 09 марта 2011

У меня есть рабочая программа, из которой я готов сгенерировать MSI для распространения.Место установки по умолчанию - C / Program Files / Foo / Bar, и именно здесь я бы предпочел его установить. Однако , после установки в этом месте, программа отказывается запускаться, если не щелкнуть правой кнопкой мыши и «запустить от имени администратора».

Я понимаю, что программе требуется доступ администратора, поскольку она установлена ​​в C / Program Files (у меня есть альтернативный путь установки, который устанавливает его на рабочий стол без этой проблемы), поэтому я ищу способ не запускать программу от имени администратора каждый раз, когда я хочу ее использовать.

Я думал, что установка .msi "как администратор" решит проблему, но щелчок правой кнопкой мыши на .msi не обеспечивает "запуск от имени администратора", как я ожидал.

Есть ли способчтобы сделать так, чтобы мне не нужно было каждый раз запускать программу от имени администратора, поддерживая каталог установки c / program files?

Ответы [ 2 ]

2 голосов
/ 09 марта 2011

Сборка MSI с помощью setup.exe.Затем вы можете щелкнуть правой кнопкой мыши на EXE и запустить от имени администратора.Вы не можете сделать это с MSI, потому что это не программа, это документ (база данных), которая выполняется другой программой (msiexec.exe).

0 голосов
/ 10 марта 2011

Обычно это происходит, когда приложение пытается записать данные в расположении для каждой машины (например, Program Files или HKEY_LOCAL_MACHINE). В этом случае приложение будет работать только в том случае, если оно запущено с правами администратора.

Решение состоит в том, чтобы использовать местоположения для каждого пользователя для данных приложения. Например, папка Application Data (AppData) в папке профиля пользователя и HKEY_CURRENT_USER.

Однако, если вашему приложению действительно требуются права администратора, вы можете использовать манифест приложения UAC .

...