Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
No Visual Studio, a implantação do ClickOnce permite configurar como um aplicativo é atualizado. No entanto, se você quiser usar e personalizar recursos avançados de implantação do ClickOnce, precisará acessar o modelo de objeto de implantação fornecido pelo System.Deployment.Application. Você pode usar as System.Deployment.Application APIs para tarefas avançadas, como:
Criar uma opção "Atualizar agora" na sua aplicação
Downloads condicionais sob demanda de vários componentes do aplicativo
Atualizações integradas diretamente no aplicativo
Garantir que a aplicação do cliente está sempre atualizada
Como as System.Deployment.Application APIs funcionam somente quando um aplicativo é implantado com a tecnologia ClickOnce, a única maneira de depurá-las é implantar o aplicativo usando ClickOnce, anexá-lo e, em seguida, depurá-lo. Pode ser difícil anexar o depurador cedo o suficiente, porque esse código geralmente é executado quando o aplicativo inicia e funciona antes que você possa anexar o depurador. Uma solução é colocar pausas (ou paradas, para projetos do Visual Basic) antes do código de verificação de atualização ou código sob demanda.
A técnica de debugging recomendada é a seguinte:
Observação
A classe ApplicationDeployment e as APIs no namespace System.Deployment.Application não são suportadas no .NET Core e no .NET 5 e versões posteriores. No .NET 7, um novo método de acessar propriedades de implantação de aplicativo é suportado. Para obter mais informações, consulte Acessar propriedades de implantação do ClickOnce no .NET. O .NET 7 não suporta o equivalente aos métodos ApplicationDeployment.
Antes de começar, verifique se os arquivos de símbolo (.pdb) e os arquivos de origem estão arquivados.
Implante a versão 1 do aplicativo.
Criar uma nova solução em branco. No menu Arquivo , selecione Novo e, em seguida, Projeto. Na caixa de diálogo Novo Projeto , abra o nó Outros Tipos de Projeto e selecione a pasta Soluções do Visual Studio . No painel Modelos , selecione Solução em Branco.
Adicione a localização da origem arquivada às propriedades desta nova solução. No Gerenciador de Soluções, clique com o botão direito do mouse no nó da solução e selecione Propriedades. Na caixa de diálogo Páginas de Propriedades , selecione Depurar Arquivos de Origem e adicione o diretório do código-fonte arquivado. Caso contrário, o depurador localizará os arquivos de origem desatualizados, porque os caminhos do arquivo de origem são registrados no arquivo .pdb . Se o depurador usar arquivos de origem desatualizados, você verá uma mensagem informando que a fonte não corresponde.
Certifique-se de que o depurador pode encontrar os arquivos .pdb . Se você implantou os arquivos com seu aplicativo, o depurador os localizará automaticamente. Ele sempre verifica primeiro ao lado da montagem em questão. Caso contrário, precisará adicionar o caminho do ficheiro à sua lista de localizações de ficheiros de símbolos.
Abra o painel Ferramentas (ou Depuração) > e expanda a seção Opções, Configurações> de Depuração, > e >. Adicione, altere a ordem ou remova itens da lista de locais do arquivo de símbolos (.pdb).
Abra a caixa de diálogo Ferramentas (ou Depuração) >Opções, e expanda a seção de Depuração>Símbolos. Adicione, altere a ordem ou remova itens da lista de locais de pesquisa do arquivo de símbolos (.pdb).
Depure o que acontece entre as chamadas dos métodos
CheckForUpdateeDownload/Update.Por exemplo, o código de atualização pode ser o seguinte:
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 SubImplante a versão 2.
Tente anexar o depurador ao aplicativo da versão 1 enquanto ele baixa uma atualização para a versão 2. Como alternativa, você pode usar o
System.Diagnostics.Debugger.Breakmétodo ou simplesmenteStopno Visual Basic. Claro, você não deve deixar essas chamadas de método no código de produção.Por exemplo, suponha que você esteja desenvolvendo um aplicativo Windows Forms e tenha um manipulador de eventos para esse método com a lógica de atualização. Para depurar isso, basta anexar antes que o botão seja pressionado e, em seguida, defina um ponto de interrupção (certifique-se de abrir o arquivo arquivado apropriado e definir o ponto de interrupção lá).
Use a IsNetworkDeployed propriedade para invocar as System.Deployment.Application APIs somente quando a aplicação estiver implantada. As APIs não devem ser invocadas durante a depuração no Visual Studio.