Debug in Vs como não admin
-
05-07-2019 - |
Pergunta
Estou fazendo algum desenvolvimento de Winforms, executando o XP e o VS 2005 (antigo, eu sei). Gostaria de garantir que meu aplicativo possa ser executado sem direitos de administrador, mas estou com preguiça de tentar executar o VS como não admin e não quero fazer login e sair para testar meu aplicativo.
Existe uma maneira de depurar como não admin?
Existe um conjunto de atributos de segurança de acesso ao código que eu posso adicionar ao meu código que me forçará a executar a mesma permissão definida como um não administrador?
Solução
Execute o VS como outro usuário da sua sessão de desktop registrada atual. Ver Como ativar e usar o comando "Run como" ao executar programas no Windows. Isso significa que você não terá que fazer login e sair.
Eu sugeriria que você apenas execute seu aplicativo de destino como outro usuário, via Runas e depois anexe o depurador VS ao processo (se necessário), por meio da depuração> Anexar no processo ... Item de menu no Visual Studio.
Outras dicas
Com base na resposta de Phil, você pode automatizar o processo definindo o projeto de inicialização para:
Inicie o programa externo: c:\windows\system32\runas.exe
com os argumentos da linha de comando: /noprofile /user:{MachineName}\{UserName} {ApplicationName}.exe
Infelizmente, não acho que exista uma maneira automática de anexar o processo ao depurador VS (por causa do aviso de segurança), mas chamando condicionalmente chamando
#if (DEBUG)
System.Diagnostics.Debugger.Launch();
#endif
Você será solicitado a anexar a um depurador com dois cliques.
Abordando isso com uma mudança mais fundamental:
Se você permitir que seu computador permita sessões de desktop remotas simultâneas (Vista, XP, use o Google para outras pessoas) e inicie uma sessão de desktop remota para 127.0.0.2, você pode ser executado como um usuário completamente diferente do seu sistema local, permitindo que você faça o que quiser sem precisar alternar entre os usuários.
Para mim, normalmente executo como usuário não administrativo, mas inicio uma sessão de desktop remota como administrador sempre que precisar executar uma tarefa administrativa. Mas você pode fazer o contrário com a mesma facilidade.