Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
No Visual Studio, a implantação do ClickOnce permite que você configure como um aplicativo é atualizado. No entanto, se você quiser usar e personalizar recursos avançados de implantação do ClickOnce, precisará ter acesso ao modelo de objeto de implantação fornecido por System.Deployment.Application. Você pode usar as System.Deployment.Application APIs para tarefas avançadas, como:
Criando uma opção "Atualizar Agora" em seu aplicativo
Downloads condicionais sob demanda de vários componentes do aplicativo
Atualizações integradas diretamente ao aplicativo
Garantindo que o aplicativo cliente esteja sempre up-to-date
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 depurá-lo. Pode ser difícil anexar o depurador com antecedência suficiente, pois esse código geralmente é executado na inicialização do aplicativo e é acionado antes que você consiga anexar o depurador. Uma solução é fazer quebras (ou paradas, para projetos do Visual Basic) antes do código de verificação de atualização ou do código sob demanda.
A técnica de depuração recomendada é a seguinte:
Observação
A ApplicationDeployment classe e as APIs no System.Deployment.Application namespace não são compatíveis com .NET Core e .NET 5 e versões posteriores. No .NET 7, há suporte para um novo método de acesso às propriedades de implantação do aplicativo. Para obter mais informações, consulte as propriedades de implantação do Access ClickOnce no .NET. O .NET 7 não dá suporte ao 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.
Crie 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 o local de origem arquivado às propriedades dessa 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, em seguida, adicione o diretório do código-fonte arquivado. Caso contrário, o depurador localizará os arquivos de origem desatualizados, pois 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 origem não corresponde.
Verifique se o depurador pode encontrar os arquivos .pdb . Se você implantou os arquivos com seu aplicativo, o depurador os encontrará automaticamente. Sempre verifica primeiro ao lado do conjunto em questão. Caso contrário, você precisará adicionar o caminho do arquivo à sua lista de locais de arquivo de símbolo.
Abra o painel de Ferramentas (ou Depuração) >Opções, e expanda a seção Todas as Configurações>Depuração>Símbolos>Locais de Pesquisa. Adicione, altere a ordem ou remova itens da lista de locais de arquivos 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 o
CheckForUpdatee osDownload/Updatemétodos.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 SubImplantar a versão 2.
Tente anexar o depurador ao aplicativo 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 que 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 do Windows Forms e tenha um manipulador de eventos para esse método com a lógica de atualização nele. Para depurar isso, basta anexar antes que o botão seja pressionado e, em seguida, definir um ponto de interrupção (certifique-se de abrir o arquivo arquivado apropriado e definir o ponto de interrupção lá).
Use a propriedade IsNetworkDeployed para invocar as System.Deployment.Application APIs apenas quando o aplicativo for implantado; as APIs não devem ser invocadas durante a depuração no Visual Studio.