Compartilhar via


Depuração de aplicativos ClickOnce que usam sistema.implantação.aplicativo

In Visual Studio, ClickOnce implantação permite configurar como um aplicativo é atualizado. No entanto, caso você precise usar e personalizar avançados ClickOnce recursos de implantação, você precisará acessar o modelo de objeto de implantação fornecido pelo System.Deployment.Application. Você pode usar o System.Deployment.Application APIs para tarefas avançadas, sistema autônomo:

  • Criar uma opção "Atualizar agora" em seu aplicativo

  • Condicional, sob demanda faz download de vários componentes do aplicativo

  • As atualizações diretamente integrado ao aplicativo

  • Garantindo que o aplicativo cliente está sempre backup - para-data

Porque o System.Deployment.Application APIs funcionam apenas quando um aplicativo for implantado com o ClickOnce tecnologia, a única maneira de depurá-los é implantar o aplicativo usando ClickOnce, anexar a ele e, em seguida, depurá-lo. Pode ser difícil anexar o depurador antecipado, como esse código é executado com freqüência quando o aplicativo é iniciado e executa antes que você pode anexar o depurador.Uma solução é colocar as quebras de (ou pára, para projetos do Visual Basic) antes do seu código sob demanda ou código de verificação de atualização.

A técnica de depuração recomendada é sistema autônomo segue:

  1. Antes de começar, certifique-se de que o símbolo (.pdb) e arquivos de fonte são arquivados.

  2. implantar versão 1 do aplicativo.

  3. Crie uma nova solução em branco.From a Arquivo menu, clicar Novo, then Projeto.No Novo projeto caixa de diálogo , em aberto o Outros tipos de projeto nó e, em seguida, selecionar o Soluções do Visual Studio pasta.No painel Templates, selecione Blank Solution.

  4. Adicione o local de fonte arquivada às propriedades para esta nova solução.In O gerenciador de soluções, clicar com o botão direito do mouse no nó da solução e, em seguida, clique em Propriedades.No Páginas de propriedades caixa de diálogo de de seleçãoDepurar arquivos de origem, em seguida, adicionar o diretório do código-fonte arquivados.Caso contrário, o depurador encontrará fora do data arquivos, de fonte, pois os caminhos de arquivo de fonte são registrados no arquivo .pdb.Se o depurador usa arquivos de origem desatualizados, você verá uma mensagem informando que a fonte não corresponde.

  5. Certifique-se de que o depurador pode encontrar os arquivos .pdb.Se tiver implantado o-los com o seu aplicativo, o depurador encontrará-los automaticamente.Sempre parece ao lado para o assembly em questão pela primeira vez.Caso contrário, você precisará adicionar o caminho de arquivar para o Símbolo arquivo (.pdb) locations (para acessar esta opção do Ferramentas menu, clicar Opçõese, em seguida, abra o Depuração nó e clicar Símbolos).

  6. Depurar o que ocorre entre o CheckForUpdate e Download/Update chamadas de método.

    Por exemplo, o código de atualização pode ser sistema autônomo segue:

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If My.Application.Deployment.IsNetworkDeployed Then
    
                If (My.Application.Deployment.CheckForUpdate()) Then
    
                    My.Application.Deployment.Update()
                    Application.Restart()
    
                End If
    
            End If
        End Sub
    
  7. Implante a versão 2.

  8. Tente anexar o depurador para o aplicativo de versão 1 durante seu download de uma atualização para versão 2.Como alternativa, você pode usar o System.Diagnostics.Debugger.Break método ou simplesmente Stop no Visual Basic. Obviamente, não deixe essas chamadas de método no código de produção.

    Por exemplo, suponha que você está desenvolvendo um aplicativo WinForms e você tiver um manipulador de eventos para esse método com a lógica de atualização nela.Para depurar isso, basta anexar antes que o botão é pressionado e, em seguida, conjunto um ponto de interrupção (Certifique-se de que você em em aberto o arquivo arquivado apropriado e defina o ponto de interrupção lá).

Use o IsNetworkDeployed propriedade para invocar o System.Deployment.Application APIs somente quando o aplicativo for implantado, as APIs não deve ser chamadas durante a depuração em Visual Studio.

Consulte também

Tarefas

Exemplo de tecnologia de implantação ClickOnce OnDemand

Referência

System.Deployment.Application