2015-08-29 4 views
1

У меня есть приложение Winform со следующим кодом в Program.cs, чтобы убедиться, что мое приложение всегда работает с административными привилегиями:Всегда запускать VS2015 отладки с повышенными привилегиями

static class Program 
{ 
    /// <summary> 
    /// The main entry point for the application. 
    /// </summary> 
    [STAThread] 
    static void Main() 
    { 
     // Init visual styles 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 

     // Check if app is launched with administrative privilage 
     WindowsPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); 
     bool administrativeMode = principal.IsInRole(WindowsBuiltInRole.Administrator); 

     // Check if application is already running 
     bool mutexCheck; 
     var mutex = new Mutex(true, Assembly.GetExecutingAssembly().GetType().GUID.ToString(), out mutexCheck); 
     if (!mutexCheck) 
     { 
      // Error 
      Utils.ShowError("Program is already running."); 
      return; 
     } 

     // If app is running without administrative privilage 
     if (!administrativeMode) 
     { 
      // Request administrative privilage 
      ProcessStartInfo startInfo = new ProcessStartInfo(); 
      startInfo.Verb = "runas"; 
      startInfo.FileName = Application.ExecutablePath; 
      try 
      { 
       // Run app as administrator 
       Process.Start(startInfo); 
      } 
      catch (Exception ex) 
      { 
       // Error 
       Utils.ShowError("Program failed to start - " + ex.Message); 
       return; 
      } 
     } 
     return; 

     // Launch application 
     Application.Run(new MyApp()); 
     GC.KeepAlive(mutex); 
    } 
} 

Каждый раз, когда я нажимаю F5, чтобы запустить приложение в режим отладки в Visual Studio 2015, приложение, похоже, работает только - среда отладки не запускается.

Итак, что я должен сделать, это пойти в Debug -> Attach to Process... и выберите MyApp.exe, а затем я пробужден с этим окном:

enter image description here

Затем, когда я нажимаю на Restart under different credentials - VS2015 перезагружается. Затем мне придется закрыть уже запущенный экземпляр MyApp, а затем нажмите F5 для повторного запуска с повышенными привилегиями; когда я это делаю - работает отладка.

Есть ли способ установить мой VS2015, чтобы всегда запускать этот проект с повышенными привилегиями?

ответ

2

Попробуйте запустить Visual Studio в качестве администратора. В тех случаях, когда я столкнулся с недостаточными привилегиями Запуск Visual Studio, так как администратор исправил мою проблему.

+1

Я достиг этого, выполнив шаги, описанные здесь http://stackoverflow.com/a/9654880/2332336 для 'Windows 8 и 8.1' (я нахожусь в Windows 10, и это работает). Теперь я могу просто запустить файл решения проекта, и он автоматически запускает VS2015 с правами администратора :) – Latheesan

Смежные вопросы