Как запустить приложение как администратор в отладке с Visual Studio?

У меня есть приложение aC#, где я должен иметь доступ на чтение / запись к корню диска C. Я понимаю, что могу скомпилировать код и запустить исполняемый файл от имени администратора, и он работает. Но мне нужно отладить его, и я не уверен, как запустить приложение в Visual Studio.

Я попытался добавить:

<requestedExecutionLevel level="asInvoker" uiAccess="true" />

к моему манифесту, но я все еще получаю ошибку отказа в доступе

Вот строка кода, которая терпит неудачу:

MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(@"c:\somemapnamefile.data", System.IO.FileMode.OpenOrCreate, "somemapname", 1000);

На данный момент у меня есть работа вокруг, но я хотел бы знать на будущее.

6 ответов

Решение

Просто запустите Visual Studio как администратор. Любая программа, которую вы отлаживаете оттуда, также будет запускаться от имени администратора.

VS должен быть запущен с правами администратора. тем не менее, более элегантный способ - в requireExecutionLevel в манифесте должно быть установлено значение requireAdministrator.

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

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

Вы также можете установить эту опцию администратора автоматически:

Чтобы ответить на вопрос в своем заголовке, вы можете просто выбрать Запуск от имени администратора из контекстного меню при запуске VS.

Теперь проверенный ответ не будет работать.

Вы должны найти опцию для этого в свойствах проекта Linker -> Manifest File -> UAC Execution Level. Установите это для requireAdminstrator.

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

Эта ошибка возникает из-за того, что у текущего пользователя недостаточно прав для открытия Visual Studio.

Чтобы обойти эту проблему, щелкните правой кнопкой мыши Visual Studio и выберите запускать от имени администратора при каждом открытии.

Кроме того, вы можете проверить совместимость устранения неполадок как постоянное решение

  • Щелкните правой кнопкой мыши Visual Studio> Выбрать Устранение неполадок совместимости.
  • Выберите "Устранение неполадок программы".
  • Проверка Программа требует дополнительных разрешений.
  • Нажмите на Проверить программу.
  • Подождите немного до запуска программы. Нажмите Далее.
  • Выберите Да, сохранить эти настройки для этой программы.
  • Ждите, чтобы решить проблему.
  • Убедитесь, что окончательный статус зафиксирован. Нажмите Закрыть.

Чтобы найти подробные шаги с изображением для Как применить, проверьте эту ссылку

Надеюсь, это поможет вам

Другие вопросы по тегам