Visual studio отладка от имени администратора
Я пробовал добавить:
в мой манифест, но я все еще получаю ошибку отказа в доступе.
Вот строка кода, которая терпит неудачу:
На данный момент у меня есть работа, но я хотел бы знать на будущее.
Если вы запустите VS как администратор, все, что вы отлаживаете, также будет работать как администратор.
Я бы порекомендовал следующее исправление, иначе у вас возникнут проблемы с запуском закрепленных решений
В моем случае мне пришлось перейти в раздел «Совместимость» и выбрать запуск в Windows XP (Service Pack 3). Запуск IDE от имени администратора не помог.
Просто запустите саму Visual Studio от имени администратора. Любая программа, которую вы оттуда отлаживаете, также будет запускаться от имени администратора.
@PanagiotisKanavos Я лично предпочитаю не запускать что-то от имени администратора, если у меня нет особой причины для этого
да. Есть несколько программ, требующих администратора. И как только я запускаю его, VS просит перезапустить VS в режиме администратора. Я не знаю, как это происходит. Я просто установил level = "requireAdministrator". Но иногда он не перезапускается автоматически
Если вы настроили VS для запуска от имени администратора по умолчанию, но дважды щелкнули по решению, вы можете случайно запустить его как не администратор. Со мной случается время от времени.
Несмотря на то , принято, это не правильное решение. Вы не запускаете программы, ни VS, ни что-либо еще в качестве администратора, если в этом нет необходимости. Первоначальный вопрос касался программы, которую пишет OP, а не VS. Правильный ответ - указать, что разрабатываемая программа требует прав администратора.
VS должен запускаться с правами администратора. однако более элегантный способ - указать requiredExecutionLevel в манифесте, который должен быть установлен на «requireAdministrator».
Когда вы откроете проект и попытаетесь отладить, VS2012 предупредит о праве администратора и перезапустится с правами администратора. Кроме того, exe-файл будет отмечен как требующий администратора в первую очередь, поэтому при развертывании вам не нужно настраивать права администратора в свойствах файла.
Также убедитесь, что на вкладке «Безопасность» вашего проекта не установлен флажок «Включить ClickOnce . », иначе вы получите предупреждение системы безопасности при попытке запустить код, требуемый администратором. (этот параметр будет проверен, если в какой-то момент вы уже нажимали «Опубликовать» в своем приложении).
Вы также можете установить эту опцию администратора автоматически:
Это чудовищно плохая идея. Вы действительно не хотите, чтобы Visual Studio постоянно работала от имени администратора.
Этот снимок экрана совершенно непонятен и не имеет сопроводительного объяснения, независимо от того, хорошее это решение или нет.
I have tried adding:
to my manifest but I still get access denied error.
Here is the line of code that fails:
For now I have a work around but I'd like to know for the future.
In my case, I had to go to Compatability and select run in Windows XP (Service Pack 3). Running the IDE as administrator did not help.
6 Answers 6
Just run visual studio itself as an administrator. Any program you debug from there will also be run as an administrator.
@PanagiotisKanavos I personally like to avoid running things as administrator unless I have a specific reason to do so
Yes. There are some couple of programs that requires an administrator. And once, I run it, VS asks to restart the VS in administrator mode. I am not sure how's that happening. I just set the level="requireAdministrator". But sometimes, it does not automatically restart
Despite being accepted, this is not the correct solution. You don't run programs, neither VS nor anything else as admin unless it is necessary. The original question was about the program the OP writes, not VS. The correct answer is to specifiy that the program under development requires admin privileges.
I am with @Gábor : this is not the correct solution. You simply set the requiredExecutionLevel to requireAdministrator in the app manifest, and VS will automagically notice that and, upon starting Debug, will show a dialog where it asks you if you want to restart itself with admin rights.
VS must be run with admin right. however, a more elegant way is in the requiredExecutionLevel in manifest should set to 'requireAdministrator'.
When you open the project and try to debug, the VS2012 will warn about the admin right and restart itself to admin right. And also the exe file will be marked as requiring admin right at the first place therefore when deploy you don't need to configure admin right requirement in file properties.
Also ensure that under your project's Security tab, "Enable ClickOnce. " is unchecked else you will get a security warning when you try to run your admin-required code. (that setting will be checked if you've already clicked 'Publish' on your app at some point).
Just a note - if there is no manifest, simply add one. Somehow I failed to realize it may be non-existent.
The new version 1.2.0 include a terminal, but when I try to install any pack with node I get the npm ERR! code EPERM that I usually solve right clicking and running it as administrator. So how I do that in the vscode terminal? There is something like sudo for linux?
Found the answer myself, just run visual studio code as administrator. Just right click on it. Don't know why I didn't think of that earlier.
is there no other workaround to this? I've been running Visual Studio for years as admin but this just seems 'wrong' somehow. Also sometimes in VSCode I don't have to do this. Is it only when a package is being deleted or updated that you'd get this?
` just run visual studio code as administrator. Just right click on it.' it works only if you close all instances of VScode before
6 Answers 6
Option 1 - Easier & Persistent
Running Visual Studio Code as Administrator should do the trick.
If you're on Windows you can:
- Right click the shortcut or app/exe
- Go to properties
- Compatibility tab
- Check "Run this program as an administrator"
Make sure you have all other instances of VS Code closed and then try to run as Administrator. The electron framework likes to stall processes when closing them so it's best to check your task manager and kill the remaining processes.
Option 2 - More like Sudo
If for some weird reason this is not running your commands as an Administrator you can try the runas command. Microsoft: runas command
- runas /user:Administrator myCommand
- runas "/user:First Last" "my command"
- Just don't forget to put double quotes around anything that has a space in it.
- Also it's quite possible that you have never set the password on the Administrator account, as it will ask you for the password when trying to run the command. You can always use an account without the username of Administrator if it has administrator access rights/permissions.
when I use runas "user:domain\adname" "npm install -g @angular/cli" I get an error "RUNAS ERROR: Unable to run - npm install -g @angular/cli the system cannot find the file specified"
Like the answer mentions, you might find that you've never set your administrator password, if that's the case, leaving the password blank won't work (on Windows 10 at least), but you might also find that your own user account is also an administrator, so use your own user name instead of Administrator and you'll achieve the same result.
Also, the integrated terminal won't be reused if you use runas , instead, a new console window will open where the argument command will be executed. It will close itself afterwards, to keep it open, use cmd /k
Step 1: Restart VS Code as an adminstrator
(click the windows key, search for "Visual Studio Code", right click, and you'll see the administrator option)
Step 2: In your VS code powershell terminal run Set-ExecutionPolicy Unrestricted
This works. I don't know why everyone is still upvoting other answers when this is working. Have I missed something, is there a drawback?
Works, sadly it isn't persistent, unless I'm missing something. Will stick to Option 1 of the accepted answer.
In my case even while running as admin I had to set the execution policy.
In the terminal type:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
Running as admin didn't help me. (also got errors with syscall: rename)
Turns out this error can also occur if files are locked by Windows.
This can occur if :
- You are actually running the project
- You have files open in both Visual Studio and VSCode.
Running as admin doesn't get around windows file locking.
I created a new project in VS2017 and then switched to VSCode to try to add more packages. After stopping the project from running and closing VS2017 it was able to complete without error
Disclaimer: I'm not exactly sure if this means running as admin isn't necessary, but try to avoid it if possible to avoid the possibility of some rogue package doing stuff it isn't meant to.
Thanks, this is exactly what happened to me. Closing the other applications that uses the folder and then reinstalling via cmd in Admin.
Here's what I get.
I'm using Visual Studio Code and its Terminal to execute the 'npm' commands.
Visual Studio Code (not as administrator)
PS g:\labs\myproject> npm install bootstrap@3
Results in scandir and/or permission errors.
Visual Studio Code (as Administrator)
Run this command after I've run something like 'ng serve'
PS g:\labs\myproject> npm install bootstrap@3
Results in scandir and/or permission errors.
Visual Studio Code (as Administrator - closing and opening the IDE)
If I have already executed other commands that would impact node modules I decided to try closing Visual Studio Code first, opening it up as Administrator then running the command:
PS g:\labs\myproject> npm install bootstrap@3
Result I get then is: + bootstrap@3.3.7
added 115 packages and updated 1 package in 24.685s
This is not a permanent solution since I don't want to continue closing down VS Code every time I want to execute an npm command, but it did resolve the issue to a point.
В Visual Studio 2017 найдите компонент Поддержка IIS во время разработки. Убедитесь, что он выбран при добавлении рабочей нагрузки.
Запустите Visual Studio от имени администратора.
Убедиться, что приложение работает в IIS без ошибок.
Сервер IIS Express используется по умолчанию и уже предварительно настроен. Если вы хотите выполнять отладку на локальном сервере IIS, убедитесь, что выполняются требования для отладки на локальном сервере IIS.
Перейдите на вкладку Интернет.
В области Свойства в разделе Серверы выполните следующее.
- Для сервера IIS Express выберите IIS Express в раскрывающемся списке.
- Для локального сервера IIS:
- в раскрывающемся списке выберите Локальный сервер IIS;
- рядом с полем URL-адрес проекта установите флажок Создать виртуальный каталог, если вы еще не настроили приложение в службах IIS.
Выберите Файл > Сохранить выбранные элементы или нажмите сочетание клавиш CTRL+S, чтобы сохранить изменения.
Для отладки приложения установите точки останова в некоторых местах кода проекта. В панели инструментов Visual Studio убедитесь, что для конфигурации задано значение Отладка, и нужный вам браузер отображается в поле эмулятора IIS Express () или Локальный сервер IIS () .
Чтобы начать отладку, в панели инструментов выберите IIS Express () или Локальный сервер IIS() , а затем выберите Начать отладку в меню Отладка или нажмите клавишу F5. Отладчик приостанавливает выполнение в точках останова. Если отладчик не может попасть в точки останова, см. раздел Устранение неполадок при отладке.
Сервер IIS Express используется по умолчанию и уже предварительно настроен. Если вы выполняете отладку на локальном сервере IIS, а не на IIS Express, убедитесь, что выполняются требования для отладки на локальном сервере IIS. Также имеется профиль по умолчанию, основанный на имени проекта, который настроен для веб-сервера Kestrel.
Перейдите на вкладку Отладка и щелкните ссылку, чтобы открыть Пользовательский интерфейс профилей запуска отладки.
Выберите профиль, который необходимо настроить для отладки.
- Для сервера IIS Express выберите IIS Express в раскрывающемся списке.
- Для Kestrel выберите профиль с таким же именем, как и у проекта.
- Для локальных служб IIS выберите Создать и создайте профиль IIS.
Убедитесь, что флажок Запуск браузера установлен.
Убедитесь, что URL-адрес, URL-адрес приложения и URL-адрес SSL приложения указаны правильно.
URL-адрес задает расположение узла для .NET или .NET Core. Если профиль назван как проект (то есть свойство commandName в launchSettings.json имеет значение Project), то сервер Kestrel ожидает передачи данных по указанному порту. Для профиля IIS значение обычно совпадает с URL-адресом приложения. Дополнительные сведения см. в разделе Настройка проекта в части "Профиль запуска служб IIS".
В разделе Переменные среды убедитесь, что параметр ASPNETCORE_ENVIRONMENT существует и имеет значение Разработка. Если это не так, добавьте переменную.
Дополнительные сведения о переменных среды см. в разделе Среды.
Для отладки приложения установите точки останова в некоторых местах кода проекта. На панели инструментов Visual Studio убедитесь, что в качестве параметра конфигурации задано значение Отладка.
Чтобы начать отладку, выберите имя профиля на панели инструментов, например , IIS Express или на панели инструментов, выберите Начать отладку в меню Отладка или нажмите клавишу F5. Отладчик приостанавливает выполнение в точках останова. Если отладчик не может попасть в точки останова, см. раздел Устранение неполадок при отладке.
Сервер IIS Express используется по умолчанию и уже предварительно настроен. Если вы хотите выполнять отладку на локальном сервере IIS, убедитесь, что выполняются требования для отладки на локальном сервере IIS.
Выберите вкладку Отладка.
В области Свойства рядом с полем Профиль выполните следующее.
- Для сервера IIS Express выберите IIS Express в раскрывающемся списке.
- Для локального сервера IIS выберите в раскрывающемся списке имя приложения или нажмите Создать, создайте новое имя профиля и нажмите кнопку ОК.
В раскрывающемся списке рядом с полем Запуск выберите IIS Express или IIS.
Убедитесь, что флажок Запуск браузера установлен.
В разделе Переменные среды убедитесь, что параметр ASPNETCORE_ENVIRONMENT существует и имеет значение Разработка. Если этот параметр отсутствует, нажмите кнопку Добавить и добавьте его.
Выберите Файл > Сохранить выбранные элементы или нажмите сочетание клавиш CTRL+S, чтобы сохранить изменения.
Для отладки приложения установите точки останова в некоторых местах кода проекта. В панели инструментов Visual Studio убедитесь, что для конфигурации задано значение Отладка, а в поле эмулятора указано IIS Express или имя нового профиля IIS.
Чтобы начать отладку, в панели инструментов выберите IIS Express или , а затем выберите Начать отладку в меню Отладка или нажмите клавишу F5. Отладчик приостанавливает выполнение в точках останова. Если отладчик не может попасть в точки останова, см. раздел Устранение неполадок при отладке.
Устранение неполадок отладки
Если при отладке на локальном сервере IIS не удается достичь точки останова, выполните следующие шаги для устранения неполадок.
Запустите веб-приложение из IIS и убедитесь, что оно работает правильно. Оставьте веб-приложение работать.
Если вы можете подключиться и попасть в точку останова путем выбора пункта Подключиться к процессу, но не путем выбора Отладка > Начать отладку или нажатия клавиши F5, скорее всего, в свойствах проекта неправильно задан параметр. Если вы используете файл HOSTS, также проверьте правильность его настройки.
Настройка отладки в файле web.config
Процесс развертывания может обновить параметры в web.config, поэтому, прежде чем приступить к отладке, проверьте, настроена ли отладка в файле web.config.
Чтобы вручную настроить отладку в файле web.config, выполните следующие действия.
Файл web.config — это XML-файл, поэтому он содержит вложенные разделы, помеченные тегами. Найдите раздел configuration/system.web/compilation . (Если элемент compilation не существует, создайте его.)
Убедитесь, что атрибут debug в элементе compilation имеет значение true . (Если в элементе compilation отсутствует атрибут debug , добавьте его и установите для него значение true .)
Если вместо сервера IIS Express по умолчанию вы используете локальный сервер IIS, убедитесь, что значение атрибута targetFramework в элементе compilation соответствует платформе на сервере IIS.
Элемент compilation в файле web.config должен выглядеть, как показано в следующем примере:
Этот пример представляет часть файла web.config. Обычно в элементах configuration и system.web имеются дополнительные разделы XML, а элемент compilation может также содержать другие атрибуты и элементы.
Публикация в режиме отладки с помощью файловой системы
Существуют разные способы публикации приложений в IIS. Приведенные далее действия показывают, как можно создать и развернуть профиль публикации в режиме отладки с помощью файловой системы. Для этого необходимо запустить Visual Studio от имени администратора.
После изменения кода или повторной сборки необходимо еще раз выполнить эти действия для повторной публикации.
В Visual Studio щелкните проект правой кнопкой мыши и выберите Опубликовать.
Выберите IIS, FTP и т. п. и нажмите Опубликовать.
В диалоговом окне CustomProfile в качестве метода публикации выберите файловую систему.
В поле Целевое расположение нажмите кнопку Обзор ( . ).
Выберите Далее.
В разделе Конфигурация выберите в раскрывающемся списке пункт Отладка.
В диалоговом окне Опубликовать убедитесь, что отображается CustomProfile (или имя только что созданного профиля), и параметр LastUsedBuildConfiguration имеет значение Отладка.
Нажмите Публиковать.
Режим отладки значительно снижает производительность приложения. Для улучшения производительности установите debug="false" в файле web.config, а при развертывании рабочего приложения или при выполнении измерений производительности указывайте сборку выпуска.
Приносим извинения. Запрошенное содержимое было удалено. Вы будете автоматически перенаправлены через 1 секунду.
Лучший отвечающий
Вопрос
Как в коде программы указать на запуск с правами администратора ?
Ответы
Добавьте в проект файл App.manifest (ПКМ по проекту - добавить - существующий элемент) и в блоке раскомментируйте следующую строчку:
DreamSpark Premium User
- Изменено asdfxcbneftyherwe 28 августа 2012 г. 6:28
- Предложено в качестве ответа LXGDARK Editor 28 августа 2012 г. 7:34
- Отменено предложение в качестве ответа user6477 31 августа 2012 г. 7:02
- Помечено в качестве ответа user6477 31 августа 2012 г. 7:02
Ещё бы сюда добавить информацию о запуске куска кода с правами кого-нибудь, а не всего процесса.
Иногда может пригодиться. Подглядел что такое бывает в некоторых программах.
Понятия не имею как они это делают (запускают новый процесс с правами, тот же перезапускают и тд.),
но всё же.
Например так можно сделать вызов метода с требованием прав админа - Admin rights for a single method
а у меня работает с манифестом, давно так сам делал.
И отладка работает, нужно только визуал студию тоже от админа запускать.Если нужно, можно почти совсем пустой проект с этим делом сделать и выложить куда-нибудь.
Было бы куда (без кучи всякой ерундовой рекламы)
- Изменено INFEL8 29 августа 2012 г. 10:00
- Предложено в качестве ответа Алексей Лосев Editor 29 августа 2012 г. 10:08
- Отменено предложение в качестве ответа user6477 31 августа 2012 г. 7:01
- Помечено в качестве ответа user6477 31 августа 2012 г. 7:03
Все ответы
Добавьте в проект файл App.manifest (ПКМ по проекту - добавить - существующий элемент) и в блоке раскомментируйте следующую строчку:
DreamSpark Premium User
- Изменено asdfxcbneftyherwe 28 августа 2012 г. 6:28
- Предложено в качестве ответа LXGDARK Editor 28 августа 2012 г. 7:34
- Отменено предложение в качестве ответа user6477 31 августа 2012 г. 7:02
- Помечено в качестве ответа user6477 31 августа 2012 г. 7:02
Ещё бы сюда добавить информацию о запуске куска кода с правами кого-нибудь, а не всего процесса.
Иногда может пригодиться. Подглядел что такое бывает в некоторых программах.
Понятия не имею как они это делают (запускают новый процесс с правами, тот же перезапускают и тд.),
но всё же.
Например так можно сделать вызов метода с требованием прав админа - Admin rights for a single method
Правка манифеста ни к чему ни привела, хотя об этом способе также упоминается в большом количестве источников. Первоначально я шел именно этим путем.
Пытался делать как написано здесь На первый взгляд все, вроде бы, хорошо, при запуске появляется окно UAC, уже начал радоваться, НО оказалось: перестает работать отладка, другими словами, у меня на форме есть кнопарь, по клику должен выполнятся определенный код, так вот, это клик отладка уже не не видит: ставишь точку останова, но она не срабатывает, хотя форма открывается, кнопка отрабатывает. Похоже, это происходит по причине убивания процесса, который запускался в самом начале (см. ссылку выше) (т.е. того, который мониторил отладчик), то, что запускается потом - это уже новый процесс, который отладчик не контролирует.
Еще вот здесь описан хороший способ. Почему то, после его применения, при компиляции проекта высыпается куча ошибок, но на exe-шнике в результате появляется щит, при запуске дает окно UAC, но проект больше не компилится.
Очень благодарен всем за участие и помощь.
Может быть, еще есть идеи ?
а у меня работает с манифестом, давно так сам делал.
И отладка работает, нужно только визуал студию тоже от админа запускать.Если нужно, можно почти совсем пустой проект с этим делом сделать и выложить куда-нибудь.
Было бы куда (без кучи всякой ерундовой рекламы)
- Изменено INFEL8 29 августа 2012 г. 10:00
- Предложено в качестве ответа Алексей Лосев Editor 29 августа 2012 г. 10:08
- Отменено предложение в качестве ответа user6477 31 августа 2012 г. 7:01
- Помечено в качестве ответа user6477 31 августа 2012 г. 7:03
На счет манифеста: удалил манифест, перестроил проект, компильнул, опять добавил манифест, поставил requireAdministrator, перестроил, компильнул. при запуске программы теперь появляется окно UAC. Вот интересно, почему раньше то не работало, делал ведь то же самое.
Еще раз всем спасибо за помощь.
Центры разработки
Обучение
Сообщество
Свяжитесь с нами
Программы
© 2022 Microsoft
Читайте также: