Compartilhar via


Depuração de aplicativos que System.Deployment.Application de uso do ClickOnce

Em Visual Studio, ClickOnce implantação permite configurar como um aplicativo é atualizado. No entanto, se você precisar usar e personalizar advanced ClickOnce recursos de implantação, você precisará acessar o modelo de objeto de implantação fornecido por System.Deployment.Application. Você pode usar o System.Deployment.Application APIs para tarefas avançadas, como:

  • A criação de uma "atualização" agora opção no seu aplicativo.

  • On demand condicional, downloads de vários componentes do aplicativo

  • Integrado diretamente no aplicativo de atualizações

  • Garantindo que o aplicativo cliente esteja sempre atualizado

Porque o System.Deployment.Application APIs só funcionam quando um aplicativo é implantado com ClickOnce a tecnologia, a única maneira de depurá-los é implantar o aplicativo usando o ClickOnce, anexar a ele, e depurar o proprietário. Pode ser difícil anexar o depurador antecipado suficiente, pois 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 de Visual Basic) antes do seu código de demanda ou o código de verificação de atualização.

A técnica de depuração recomendada é a seguinte:

  1. Antes de começar, verifique se o símbolo (. PDB) e arquivos de origem são arquivados.

  2. Implante a versão 1 do aplicativo.

  3. Crie uma nova solução em branco. Do arquivo menu, clique em nova, em seguida, projeto. No Novo projeto caixa de diálogo Abrir o Other Project Types nó, em seguida, selecione o Visual Studio soluções de pasta. No painel Templates, selecione Blank Solution.

  4. Adicione o local de origem arquivada para as propriedades para essa nova solução. Em Solution Explorer, o botão direito do mouse no nó da solução, e clique em Propriedades. No Property Pages caixa de diálogo, selecione Debug Source Files, em seguida, adicione o diretório do código fonte arquivados. Caso contrário, o depurador encontrará os arquivos de origem desatualizados, desde que os caminhos de arquivo de origem são registrados no arquivo. PDB. Se o depurador usa arquivos de origem desatualizados, verá uma mensagem informando que a fonte não corresponde.

  5. Certificar-se de que o depurador pode encontrar os arquivos. PDB. Se você implantou-los com seu aplicativo, o depurador encontrá-las automaticamente. Sempre parece próximo ao assembly em questão pela primeira vez. Caso contrário, você precisará adicionar o caminho do arquivo para o Symbol file (. PDB) locations (para acessar esta opção do Ferramentas menu, clique em Opções, em seguida, abra o depuração nó e clique em símbolos).

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

    Por exemplo, o código de atualização pode ser da seguinte maneira:

        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 da versão 1, como downloads de uma atualização para a versão 2. Como alternativa, você pode usar o System.Diagnostics.Debugger.Break método ou simplesmente Stop Visual Basic. Obviamente, você não deve deixar essas chamadas de método no código de produção.

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

Use o IsNetworkDeployed propriedade para chamar 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

Referência

System.Deployment.Application