Então, eu estava escrevendo um aplicativo que requer acesso ao registro. Eu não toquei em nenhuma configuração de construção, querendo fazer a coisa funcionar antes de adicionar outros toques, como uma descrição ou nome.
De repente, recebo um erro que não desaparece. ClickOnce does not support the request execution level 'requireAdministrator'.
Bem, eu não toquei no ClickOnce neste aplicativo. Tudo o que fiz foi incluir um arquivo de manifesto solicitando essas permissões.
Meu problema agora é que esse erro não vai embora e não consigo compilar meu programa. Qualquer conselhos sobre o que fazer? (Nota lateral: estou prestes a ir para a cama, então vou verificar isso amanhã à tarde).
93
requireAdministrator
permissões e o ClickOnce começou a reclamar que não é compatívelrequireAdministrator
. O problema deve ser extremamente claro. ClickOnce está vendo a necessidade de elevação em seu manifesto (que se torna parte de seu aplicativo). Não tenho certeza do que mais você precisa aqui ...Respostas:
Edit: Este comentário também dá uma boa resposta.
Original:
Acontece que na guia Segurança, "Ativar configurações de segurança ClickOnce" foi marcada. Mesmo que eu não tenha verificado. De qualquer forma, desmarcando isso parou o ClickOnce de me dar erros. Demorou um pouco para encontrar ...
fonte
AppData
pasta. A elevação de privilégio causaria uma mudança no contexto do usuário onde o aplicativo ClickOnce nem mesmo está instalado.Eu sei que esta é uma questão antiga, mas vim aqui dois anos depois para:
Você pode desativar o ClicKOnce na guia Segurança nas propriedades do projeto para ajudar no problema; ver abaixo:
fonte
Se você já usou o assistente de publicação ou 'Publicar agora', a caixa de seleção clicar uma vez será selecionada automaticamente ...
fonte
Eu sei que isso é antigo, mas me deparei com ele em busca de respostas. No meu caso, estou usando a função de publicação e preciso continuar usando-a. Eu também preciso de acesso aos recursos de administrador. Portanto, por esse motivo, nenhuma das respostas acima funcionou para mim.
Acabei adicionando um método bem no início do meu aplicativo que verifica se ele está sendo executado como um administrador e se não estiver, reinicie-se como um administrador. Para fazer isso, você precisa das seguintes referências adicionadas.
Em seguida, você precisará colocá-lo em algum lugar ao qual seu método principal tenha acesso acessível. Estou usando o WPF, então adicionei-o a MainWindow.xaml.cs, mas você pode adicioná-lo em qualquer lugar no início de seu código. Lembre-se de adicionar "estático" a esses métodos, caso precise.
Por último, no início do seu programa, adicione uma referência ao método. No meu caso, eu o adicionei à MainWindow, mas adicioná-lo ao Main também funciona.
Espero que isto ajude!
fonte
Esta ação pode ser alcançada selecionando "Ativar configurações de segurança ClickOnce" (uma vez que não pode ser "desmarcado" durante uma Publicação, conforme declarado) e, em seguida, selecionando "Este é um aplicativo de confiança parcial". "Intranet local" será automaticamente selecionado no menu suspenso, o que é perfeitamente adequado.
Salve suas alterações, publique o aplicativo, skis prontos. :-)
fonte
Dê uma olhada em seu arquivo app.Manifest e você verá o seguinte:
Há instruções nos comentários, mas apenas excluir o "requireAdministrator" e inseri-lo já resolveu o problema para mim:
fonte
requireAdministrator
privilégio é necessário para gravar no registro, portanto, isso seria um requisito.asInvoke
Eu tenho o mesmo problema s eu resolvê-lo desmarcando a " Ativar configurações de segurança ClickOnce" para encontrar esta opção no Visual Studio clique direito em seu projeto ==> propriedades ==> Select Segurança ==> Ativar configurações de segurança ClickOnce (Esta opção foi já marcada, então desmarquei e meu problema foi resolvido).
fonte
Aqui está o trecho de código para VB.NET
EDITAR: Mas se você implantar dessa forma, algum software AV bloqueia seu código.
fonte
Para aqueles que usam desmarcar "Ativar configurações de segurança ClickOnce" não funciona, tente o método que encontrei.
Primeiro, deixe seu item app.manifest requiredExecutionLevel como está:
E então você edita seu arquivo Program.cs assim:
reestruturar o método principal como:
Funciona no Windows 10 e Visual Studio 2019!
fonte
Para quem já passou por isso, pensei em contribuir com o que acabou funcionando para mim.
Sim, a opção 'Ativar configurações de segurança do ClickOnce' será automaticamente verificada novamente, se você desmarcá-la, ao fazer Build> Publish .
Para mim, não preciso 'Publicar' - é um .exe simples e portátil que cria tarefas agendadas para meus usuários e eu precisava garantir que ele fosse elevado, mesmo quando conectado como administrador.
Então, peguei meu .exe mais recente em \ bin \ Release e é isso que é implantado nos sistemas dos meus clientes.
Funcionou como esperado - ou seja, quando eu coloquei em um sistema com UAC habilitado / em sua configuração mais alta, o .exe tem o 'escudo' nele, e quando eu o executo, mesmo quando conectado como administrador, ele aumenta e recebo o prompt do UAC.
Meu pequeno aplicativo agendador de tarefas agora é capaz de criar a tarefa sem obter um erro de 'Acesso negado' (que anteriormente só podia ser contornado clicando com o botão direito do mouse no .exe e clicando em Executar como administrador).
fonte
somente
e você não obterá nenhum erro e seu aplicativo será executado como administrador
fonte