Як запустити програму від імені адміністратора під час налагодження за допомогою Visual Studio?


90

У мене є програма ac #, де я повинен мати доступ для читання / запису до кореня диска C. Я розумію, що можу скомпілювати код і запустити виконуваний файл як адміністратор, і це працює. Але мені потрібно його налагодити, і я не впевнений, як запустити програму в Visual Studio.

Я спробував додати:

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

до мого маніфесту, але я все ще отримую помилку у відмові в доступі.

Ось рядок коду, який не працює:

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

Наразі у мене є робота, але я хотів би знати про майбутнє.


3
Якщо ви запускаєте VS як адміністратор, все, що ви налагоджуєте, також буде виконуватися як адміністратор.
JMK

Я рекомендую таке виправлення, інакше у вас виникають проблеми із закріпленими рішеннями
JonnyRaa,

У моєму випадку мені довелося перейти до сумісності та вибрати запуск у Windows XP (з пакетом оновлень 3). Запуск IDE від імені адміністратора не допоміг.
Венді

Відповіді:


127

Просто запустіть Visual Studio як адміністратора. Будь-яка програма, яку ви налагоджуєте звідти, також буде запускатися як адміністратор.


13
А ще краще, встановіть ярлик Visual Studio для запуску від імені адміністратора на його сторінці властивостей
Panagiotis Kanavos

20
@PanagiotisKanavos Я особисто люблю уникати керування речами як адміністратор, якщо у мене немає конкретної причини для цього
Сем, я кажу, Поновити Моніку

1
Так. Є кілька програм, для яких потрібен адміністратор. І одного разу, я запускаю його, VS просить перезапустити VS в режимі адміністратора. Я не впевнений, як це відбувається. Я просто встановив рівень = "requireAdministrator". Але іноді це не перезапускається автоматично
Jayson Ragasa

@SamIam: а після розгортання веб-програми, які параметри потрібні ...?
Ghanshyam Lakhani

1
Незважаючи на прийняття, це не правильне рішення. Ви не запускаєте програми, ні VS, ні щось інше як адміністратор, якщо це не потрібно. Початкове питання стосувалося програми, яку пише OP, а не VS. Правильна відповідь - вказати, що програма, що розробляється, вимагає прав адміністратора.
Габор,

65

VS повинен запускатися з правами адміністратора. однак, більш елегантний спосіб - в елементі requiredExecutionLevel в маніфесті має бути встановлено значення 'requireAdministrator'.

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

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


1
Також переконайтеся, що на вкладці "Безпека" вашого проекту не встановлено прапорець "Увімкнути ClickOnce ...", інакше ви отримуватимете попередження про безпеку при спробі запустити код, необхідний адміністратору. (це налаштування буде перевірено, якщо ви вже натиснули "Опублікувати" у своєму додатку).
Монті,

1
Просто примітка - якщо немає маніфесту, просто додайте його. Якось я не зрозумів, що це може не існувати.
Молот

12

Ви також можете автоматично встановити цю опцію адміністратора:

введіть тут опис зображення


1
Думаю, ви хочете виділити запис «Властивості» у контекстному меню, але всі знають, про що ви говорите.
Аарон Кемпбелл

Це простіший спосіб Compatibility > Run As Administrator.
AStopher

1
Це монументально погана ідея. Ви дійсно не хочете, щоб Visual Studio постійно працював від імені адміністратора.
Jammer

1
Цей знімок екрану абсолютно незрозумілий і не містить супровідних пояснень, незалежно від того, є він гарним рішенням чи ні.
MickeyfAgain_BeforeExitOfSO

7

Щоб відповісти на запитання у вашому заголовку, ви можете просто вибрати Запуск від імені адміністратора в контекстному меню під час запуску VS.


4

Тепер перевірена відповідь не буде працювати.

Ви повинні знайти варіант для цього у властивостях проекту Linker -> Manifest File -> UAC Execution Level . Встановіть для цього потрібноAdminstrator .

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


1

«Це завдання вимагає застосування мати підвищені дозволу» помилка виникає з - за поточного користувача не має достатніх привілеїв для відкриття Visual Studio.

Як тимчасове рішення

Ви можете подолати цю проблему, клацнувши правою кнопкою миші на Visual Studio та вибравши пункт "Запуск від імені адміністратора" кожного разу, коли ви збираєтеся її відкрити

Як постійне рішення ,

Ви можете перевірити вирішення проблем із сумісністю

  • Праворуч клацніть на Visual Studio> виберіть Усунення неполадок сумісності.
  • Виберіть Усунення несправностей програми.
  • Перевірте Програма вимагає додаткових дозволів.
  • Клацніть на Тестування програми.
  • Зачекайте хвилинку до запуску програми. Натисніть Далі.
  • Виберіть Так, збережіть ці налаштування для цієї програми.

Для детальних кроків із зображеннями перевірте Visual Studio, щоб програма мала підвищені дозволи

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.