Jak uruchomić aplikację jako administrator w debugowaniu w programie Visual Studio?

90

Mam aplikację ac #, w której muszę mieć dostęp do odczytu / zapisu do katalogu głównego dysku C. Zdaję sobie sprawę, że mogę skompilować kod i uruchomić plik wykonywalny jako administrator i działa. Ale muszę go debugować i nie jestem pewien, jak można uruchomić aplikację w programie Visual Studio.

Próbowałem dodać:

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

do mojego manifestu, ale nadal otrzymuję błąd odmowy dostępu.

Oto wiersz kodu, który nie działa:

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

Na razie mam trochę pracy, ale chciałbym to wiedzieć na przyszłość.

carny666
źródło
3
Jeśli uruchomisz VS jako administrator, wszystko, co debugujesz, będzie również uruchamiane jako administrator.
JMK,
Chciałbym polecić następującą poprawkę inaczej masz problemy z uruchomieniem przypięte rozwiązania
JonnyRaa
W moim przypadku musiałem przejść do Kompatybilności i wybrać uruchamianie w systemie Windows XP (Service Pack 3). Uruchomienie IDE jako administrator nie pomogło.
Wendy

Odpowiedzi:

127

Po prostu uruchom Visual Studio jako administrator. Każdy program, który stamtąd debugujesz, będzie również uruchamiany jako administrator.

Sam jestem, mówi Przywróć Monikę
źródło
13
Jeszcze lepiej, ustaw skrót programu Visual Studio tak, aby działał jako administrator ze strony Właściwości
Panagiotis Kanavos,
20
@PanagiotisKanavos Osobiście lubię unikać uruchamiania rzeczy jako administrator, chyba że mam do tego konkretny powód
Sam, mówię: Przywróć Monikę
1
Tak. Istnieje kilka programów, które wymagają administratora. Po uruchomieniu VS prosi o ponowne uruchomienie VS w trybie administratora. Nie jestem pewien, jak to się dzieje. Po prostu ustawiłem level = "requireAdministrator". Ale czasami nie uruchamia się automatycznie
Jayson Ragasa
@SamIam: a po wdrożeniu aplikacji internetowej jakie ustawienia są wymagane ...?
Ghanshyam Lakhani,
1
Mimo akceptacji nie jest to właściwe rozwiązanie. Nie uruchamiasz programów, ani VS, ani niczego innego jako administrator, chyba że jest to konieczne. Pierwotne pytanie dotyczyło programu, który pisze OP, a nie VS. Prawidłową odpowiedzią jest określenie, że rozwijany program wymaga uprawnień administratora.
Gábor,
65

VS musi być uruchamiany z uprawnieniami administratora. jednak bardziej elegancki sposób jest na poziomie requiredExecutionLevel w manifeście, który powinien być ustawiony na „requireAdministrator”.

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

Kiedy otworzysz projekt i spróbujesz debugować, VS2012 ostrzeże o prawach administratora i uruchomi się ponownie z uprawnieniami administratora. Ponadto plik exe zostanie oznaczony jako wymagający uprawnień administratora w pierwszej kolejności, dlatego podczas wdrażania nie trzeba konfigurować wymagań dotyczących uprawnień administratora we właściwościach pliku.

Supawat Pusavanno
źródło
1
Upewnij się również, że na karcie Zabezpieczenia projektu opcja „Włącz ClickOnce ...” nie jest zaznaczona, w przeciwnym razie podczas próby uruchomienia kodu wymaganego przez administratora zostanie wyświetlone ostrzeżenie o zabezpieczeniach. (to ustawienie zostanie sprawdzone, jeśli w pewnym momencie kliknąłeś już „Opublikuj” w swojej aplikacji).
poniedziałek,
1
Tylko uwaga - jeśli nie ma manifestu, po prostu dodaj jeden. Jakoś nie zdałem sobie sprawy, że może nie istnieć.
Mołot
12

Możesz również ustawić tę opcję administratora automatycznie:

wprowadź opis obrazu tutaj

Bura Chuhadar
źródło
1
Myślę, że chcesz zaznaczyć pozycję „Właściwości” w menu kontekstowym, ale wszyscy wiedzą, o czym mówisz.
Aaron Campbell
Łatwiej jest Compatibility > Run As Administrator.
AStopher
1
To jest monumentalnie zły pomysł. Naprawdę nie chcesz, aby program Visual Studio stale działał jako administrator.
Jammer
1
Ten zrzut ekranu jest całkowicie niezrozumiały i nie ma towarzyszącego mu wyjaśnienia, niezależnie od tego, czy jest to dobre rozwiązanie, czy nie.
MickeyfAgain_BeforeExitOfSO
7

Aby odpowiedzieć na pytanie w swoim tytule, możesz po prostu wybrać Uruchom jako administrator z menu kontekstowego podczas uruchamiania VS.

Josh
źródło
4

Teraz zaznaczona odpowiedź nie będzie działać.

Powinieneś znaleźć odpowiednią opcję we właściwościach projektu Linker -> Plik manifestu -> Poziom wykonania UAC . Ustaw to na requireAdminstrator .

Spowoduje to, że domyślny wygenerowany manifest będzie zawierał plik wymagany poziom wykonania , dzięki czemu Twoi użytkownicy zostaną automatycznie poproszeni o podniesienie ich uprawnień, jeśli nie mają jeszcze podwyższonych uprawnień.

JunJie Wang
źródło
1

Komunikat „To zadanie wymaga, aby aplikacja miała podwyższone uprawnienia” błąd występuje, ponieważ bieżący użytkownik nie posiada wystarczających uprawnień, aby otworzyć Visual Studio.

Jako rozwiązanie tymczasowe

Możesz rozwiązać ten problem, klikając prawym przyciskiem myszy program Visual Studio i wybierając opcję Uruchom jako administrator za każdym razem, gdy zamierzasz go otworzyć

Jako trwałe rozwiązanie ,

Możesz sprawdzić rozwiązywanie problemów ze zgodnością

  • Kliknij prawym przyciskiem myszy Visual Studio> wybierz Rozwiązywanie problemów ze zgodnością.
  • Wybierz opcję Rozwiązywanie problemów z programem.
  • Sprawdź Program wymaga dodatkowych uprawnień.
  • Kliknij Testuj program.
  • Poczekaj chwilę, aż program się uruchomi. Kliknij Następny.
  • Wybierz Tak, zapisz te ustawienia dla tego programu.

Aby zapoznać się ze szczegółowymi krokami z obrazami, sprawdź Visual Studio wymaga, aby aplikacja miała podwyższone uprawnienia

Mohamed
źródło