Come eseguire l'applicazione come amministratore nel debug con Visual Studio?


90

Ho un'applicazione ac # in cui devo avere accesso in lettura / scrittura alla radice dell'unità C. Mi rendo conto di poter compilare il codice ed eseguire l'eseguibile come amministratore e funziona. Ma ho bisogno di eseguire il debug e non sono sicuro di come avviare l'app in Visual Studio.

Ho provato ad aggiungere:

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

al mio manifest ma ottengo ancora l'errore di accesso negato.

Ecco la riga di codice che non riesce:

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

Per ora ho un lavoro in giro, ma mi piacerebbe saperlo per il futuro.


3
Se esegui VS come amministratore, tutto ciò di cui stai eseguendo il debug verrà eseguito anche come amministratore.
JMK

Consiglierei la seguente correzione altrimenti hai problemi nell'esecuzione di soluzioni
bloccate

Nel mio caso, ho dovuto andare su Compatibilità e selezionare Esegui in Windows XP (Service Pack 3). L'esecuzione dell'IDE come amministratore non ha aiutato.
Wendy

Risposte:


126

Basta eseguire Visual Studio stesso come amministratore. Qualsiasi programma di cui esegui il debug da lì verrà eseguito anche come amministratore.


13
Meglio ancora, imposta il collegamento di Visual Studio in modo che venga eseguito come amministratore dalla sua pagina Proprietà
Panagiotis Kanavos

19
@PanagiotisKanavos Personalmente mi piace evitare di eseguire le cose come amministratore a meno che non abbia un motivo specifico per farlo
Sam I am dice Reinstate Monica

1
Sì. Ci sono alcuni programmi che richiedono un amministratore. E una volta eseguito, VS chiede di riavviare VS in modalità amministratore. Non sono sicuro di come stia succedendo. Ho appena impostato il livello = "requireAdministrator". Ma a volte, non si riavvia automaticamente
Jayson Ragasa

@ SamIam: e dopo aver distribuito l'app Web che tipo di impostazioni sono richieste ...?
Ghanshyam Lakhani

1
Nonostante sia stata accettata, questa non è la soluzione corretta. Non esegui programmi, né VS né altro come amministratore a meno che non sia necessario. La domanda originale riguardava il programma che l'OP scrive, non VS. La risposta corretta è specificare che il programma in fase di sviluppo richiede privilegi di amministratore.
Gábor

65

VS deve essere eseguito con diritti di amministratore. tuttavia, un modo più elegante è in requiredExecutionLevel in manifest dovrebbe essere impostato su "requireAdministrator".

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

Quando apri il progetto e provi a eseguire il debug, il VS2012 avviserà del diritto di amministratore e si riavvierà a destra di amministratore. E anche il file exe verrà contrassegnato come richiedente diritto di amministratore in primo luogo, quindi durante la distribuzione non è necessario configurare i requisiti di diritti di amministratore nelle proprietà del file.


1
Assicurati inoltre che nella scheda Sicurezza del tuo progetto, "Abilita ClickOnce ..." sia deselezionato altrimenti riceverai un avviso di sicurezza quando proverai a eseguire il codice richiesto dall'amministratore. (tale impostazione verrà verificata se a un certo punto hai già fatto clic su "Pubblica" sulla tua app).
monty

1
Solo una nota: se non è presente alcun manifesto, aggiungine semplicemente uno. In qualche modo non sono riuscito a rendermi conto che potrebbe essere inesistente.
Mołot

12

Puoi anche impostare questa opzione amministratore automaticamente:

inserisci qui la descrizione dell'immagine


1
Penso che tu voglia evidenziare la voce "Proprietà" nel menu contestuale, ma tutti sanno di cosa stai parlando.
Aaron Campbell

Un modo più semplice è Compatibility > Run As Administrator.
AStopher

1
Questa è una pessima idea. Non vuoi davvero che Visual Studio venga eseguito costantemente come amministratore.
Jammer

1
Questa schermata è completamente incomprensibile e non ha alcuna spiegazione di accompagnamento, indipendentemente dal fatto che sia una buona soluzione o meno.
MickeyfAgain_BeforeExitOfSO

7

Per rispondere alla domanda nel tuo titolo, puoi semplicemente selezionare Esegui come amministratore dal menu contestuale all'avvio di VS.


4

Ora la risposta selezionata non funzionerà.

Dovresti trovare un'opzione per questo nelle proprietà del progetto Linker -> File manifest -> Livello di esecuzione UAC . Impostalo su requireAdminstrator .

Ciò farà sì che il manifest generato predefinito includa il livello di esecuzione richiesto di cui hai bisogno, in modo che agli utenti verrà chiesto automaticamente di elevare i propri privilegi se non sono già elevati.


1

L' errore "Questa attività richiede che l'applicazione disponga di autorizzazioni elevate" si verifica perché l'utente corrente non dispone di privilegi sufficienti per aprire Visual Studio.

Come soluzione temporanea

È possibile risolvere questo problema facendo clic con il pulsante destro del mouse su Visual Studio e selezionare Esegui come amministratore ogni volta che si intende aprirlo

Come soluzione permanente ,

È possibile verificare la risoluzione dei problemi di compatibilità

  • A destra, fai clic su Visual Studio> seleziona Risoluzione dei problemi di compatibilità.
  • Seleziona Risoluzione dei problemi del programma.
  • Verifica Il programma richiede autorizzazioni aggiuntive.
  • Fare clic su Prova il programma.
  • Attendi un momento fino al lancio del programma. Fare clic su Avanti.
  • Seleziona Sì, salva queste impostazioni per questo programma.

Per i passaggi dettagliati con le immagini, controllare che Visual Studio richiede che l'applicazione disponga di autorizzazioni elevate

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.