Pergunta

Eu trabalho para uma empresa que produz um produto comercial e estamos actualmente a tentar oferecer uma solução que permitirá que alguns dos nossos maiores clientes a capacidade de distribuir o lado do cliente da nossa aplicação via ClickOnce.

A intenção é que os nossos clientes iria implantar a instalação ClickOnce para um compartilhamento de rede e, em seguida, enviar um link para o manifesto do aplicativo para os clientes via e-mail ou qualquer outro meio.

Temos sido capazes de integrar com sucesso a produção do ClickOnce instalar em nossa compilação automatizada (usando as ferramentas de linha de comando de Mage), e então podemos executar com êxito a instalação real em uma máquina cliente. No entanto, após a instalação e lançamento, a nossa aplicação lança um SecurityException em tempo de execução, porque ele está sendo negado o acesso ao FileIOPermission. Nossa aplicação requer permissões FullTrust, mas parece que, se a execução de montagem é CodeBase localização é um compartilhamento de rede, você só são concedidos LocalIntranet permissões (que não incluem o FileIOPermission).

Há um artigo aqui que aparentemente indica que este é um problema comum: http://blogs.msdn.com/shawnfa/archive/ 2004/12/30 / 344554.aspx

Uma solução é fornecida neste artigo usando a ferramenta Caspol, mas teríamos de executar isso em cada máquina cliente único no ambiente de implementação. Isso não é realmente um problema em si, é mais o fato de que você precisa de direitos de administrador na máquina do cliente para executar o que está sendo feito com a ferramenta Caspol, ea maioria dos clientes no ambiente do nosso cliente não vai ter esses privilégios.

Um artigo também foi publicado no mesmo blog que parece implicar que a necessidade de executar a correção Caspol foi aliviada com o lançamento do .NET 3.5 SP1: http: //blogs.msdn. com / shawnfa / Arquivo / 2008/05/12 / FullTrust-on-the-localintranet.aspx

No entanto, eu modifiquei a nossa aplicação para alvejar especificamente o lançamento do SP1 do quadro, conforme detalhado neste artigo: http://msdn.microsoft.com/en-us/library/bb398202 aspx #

Depois de fazer isso, nós ainda encontrou o mesmo SecurityException. Então, eu então aplicado algumas configurações ClickOnce específica SP1, conforme detalhado no artigo, mas ainda não alegria. Se eu iniciar o aplicativo diretamente a partir do compartilhamento de rede publicar Estou concedidas as permissões, ele parece ser apenas de dentro do contexto de ClickOnce que estamos recusou-los.

Tem mais alguém correr em questões semelhantes a estas? Eu teria pensado que se houvesse um problema na versão SP1 do quadro com relação a essas permissões alguém teria notado diante de nós como nós não temos mesmo enviado uma solução ClickOnce ainda.

Foi útil?

Solução

Eu acho que eu encontrei um problema semelhante em .NET 4.0 com exceção de segurança durante o almoço. A solução que encontrei foi para assinar digitalmente o manifesto com um certificado aprovado (não o padrão visual studio gera para o seu projeto).

É um conhecido "bug" (ou design) em ClickOnce implantado manifesta.

O seu projeto assinado?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top