Como executar o aplicativo como administrador na depuração com Visual Studio?

90

Tenho um aplicativo c # no qual preciso ter acesso de leitura / gravação à raiz da unidade C. Sei que posso compilar o código e rodar o executável como administrador e funciona. Mas preciso depurá-lo e não tenho certeza de como iniciar o aplicativo no Visual Studio.

Eu tentei adicionar:

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

ao meu manifesto, mas ainda recebo erro de acesso negado.

Aqui está a linha de código que falha:

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

Por enquanto, tenho uma solução alternativa, mas gostaria de saber para o futuro.

carny666
fonte
3
Se você executar o VS como administrador, tudo o que estiver depurando também será executado como administrador.
JMK
Recomendo a seguinte correção, caso contrário, você terá problemas ao executar soluções fixadas
JonnyRaa
No meu caso, tive que ir para Compatibilidade e selecionar executar no Windows XP (Service Pack 3). Executar o IDE como administrador não ajudou.
Wendy

Respostas:

126

Basta executar o próprio Visual Studio como administrador. Qualquer programa que você depurar de lá também será executado como administrador.

Sam, eu sou, diz Reintegrar Monica
fonte
13
Melhor ainda, defina o atalho do Visual Studio para ser executado como administrador na página Propriedades
Panagiotis Kanavos
19
@PanagiotisKanavos Eu pessoalmente gosto de evitar executar coisas como administrador, a menos que eu tenha um motivo específico para fazê-lo
Sam eu sou diz Reinstala Monica
1
Sim. Existem alguns programas que requerem um administrador. E uma vez que eu o executo, o VS pede para reiniciar o VS no modo de administrador. Não tenho certeza de como isso está acontecendo. Acabei de definir o nível = "requireAdministrator". Mas às vezes, ele não reinicia automaticamente
Jayson Ragasa
@SamIam: e depois de implantar o aplicativo web, que tipo de configurações são necessárias ...?
Ghanshyam Lakhani
1
Apesar de aceita, essa não é a solução correta. Você não executa programas, nem o VS nem qualquer outra coisa como administrador, a menos que seja necessário. A pergunta original era sobre o programa que o OP escreve, não o VS. A resposta correta é especificar que o programa em desenvolvimento requer privilégios de administrador.
Gábor
65

O VS deve ser executado com direito de administrador. no entanto, uma forma mais elegante é em requiredExecutionLevel no manifesto que deve ser definido como 'requireAdministrator'.

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

Quando você abre o projeto e tenta depurar, o VS2012 avisa sobre o direito de administrador e reinicia-se com o direito de administrador. E também o arquivo exe será marcado como requerendo direito de administrador em primeiro lugar, portanto, quando implantar, você não precisa configurar o requisito de direito de administrador nas propriedades do arquivo.

Supawat Pusavanno
fonte
1
Além disso, certifique-se de que na guia Segurança do seu projeto, "Ativar ClickOnce ..." esteja desmarcado, caso contrário, você receberá um aviso de segurança ao tentar executar o código exigido pelo administrador. (essa configuração será verificada se você já tiver clicado em 'Publicar' em seu aplicativo em algum momento).
monty,
1
Apenas uma nota - se não houver manifesto, basta adicionar um. De alguma forma, não consegui perceber que pode não existir.
Mołot de
12

Você também pode definir esta opção de administrador automaticamente:

insira a descrição da imagem aqui

Bura Chuhadar
fonte
1
Acho que você quer destacar a entrada "Propriedades" no menu de contexto, mas todos sabem do que você está falando.
Aaron Campbell
Uma maneira mais fácil é Compatibility > Run As Administrator.
AStopher
1
Esta é uma ideia extremamente ruim. Você realmente não deseja que o Visual Studio seja executado como administrador constantemente.
Jammer de
1
Esta captura de tela é completamente ininteligível e não tem nenhuma explicação, independentemente de ser uma boa solução ou não.
MickeyfAgain_BeforeExitOfSO
7

Para responder à pergunta em seu título, você pode apenas selecionar Executar como Administrador no menu de contexto ao iniciar o VS.

Josh
fonte
4

Agora, a resposta marcada não funcionará.

Você deve encontrar uma opção para isso nas propriedades do projeto Linker -> Arquivo de manifesto -> Nível de execução do UAC . Defina como requireAdminstrator .

Isso fará com que o manifesto gerado padrão inclua o nível de execução solicitado de que você precisa, de modo que seus usuários sejam solicitados automaticamente a elevar seus privilégios se eles ainda não estiverem elevados.

JunJie Wang
fonte
1

O erro "Esta tarefa requer que o aplicativo tenha permissões elevadas" ocorre porque O usuário atual não teve privilégios suficientes para abrir o Visual Studio.

Como uma solução temporária

Você pode superar esse problema clicando com o botão direito do mouse no Visual Studio e selecionar executar como administrador sempre que desejar abri-lo

Como solução permanente ,

Você pode verificar a solução de problemas de compatibilidade

  • Certo, clique em Visual Studio> selecione Solucionar problemas de compatibilidade.
  • Selecione Solução de problemas do programa.
  • Verifique se o programa requer permissões adicionais.
  • Clique em Testar o programa.
  • Aguarde um momento até o lançamento do programa. Clique em Avançar.
  • Selecione Sim, salve essas configurações para este programa.

Para obter as etapas detalhadas com imagens, verifique se o Visual Studio requer que o aplicativo tenha permissões elevadas

Mohamed
fonte