Feed NuGet do Azure DevOps com símbolos
Para depuração, preciso enviar meus pacotes NuGet, incluindo Symboles, para nosso Servidor Devops do Azure auto-hospedado .
Portanto, uso a dotnet packtarefa com os sinalizadores --include-symbolse --include-sourceem meu pipeline de construção. Como saída, recebo dois arquivos package.1.0.0.nupkge package.1.0.0.symbols.nupkg.
Quando tento empurrar o package.1.0.0.symbols.nupkgpacote em meu canal de lançamento, recebo o feedback:
409 (Conflito - O feed já contém "package.1.0.0". (ID da atividade DevOps: 766B8BC7-9AE6-4998-A246-47397236122F)).
Eu encontrei Publish * .snupkg symbol package to private feed no VSTS on stack. O feedback é que o Azure DevOps Server não oferece suporte a símbolos NuGet e eles sugerem o uso de um servidor de símbolo.
É uma solução possível simplesmente renomear o package.1.0.0.symbols.nupkgpara package.1.0.0.nupkge enviar este pacote para o feed? O Visual Studio é capaz de abrir o depurador dentro das fontes desse tipo de pacote?
Existe outra maneira de fornecer símbolos NuGet para depuração em um servidor DevOps do Azure ?
Respostas
Existem várias questões em sua postagem, vamos tentar resolvê-las uma por uma.
- É uma solução possível simplesmente renomear o pacote.1.0.0.symbols.nupkg para package.1.0.0.nupkg e enviar esse pacote para o feed?
A resposta é não. O erro 409 (Conflict - The feed already contains "package.1.0.0"significa que você já tem um pacote package.1.0.0.nupkgou package.1.0.0.symbols.nupkgcom version 1.0.0em seu feed. Portanto, você não pode enviar outro pacote com a mesma versão nesse feed. A versão do pacote no feed é única. Para proteger o pacote de pisar um no outro por causa da mesma versão do pacote.
Então, para resolver esse erro, você precisa atualizar a versão do pacote, como 1.0.1( Excluir a versão antiga do pacote do feed não resolverá esse erro ).
- O Visual Studio é capaz de abrir o depurador dentro das fontes desse tipo de pacote?
A resposta curta é sim. Os detalhes serão explicados na próxima pergunta.
- Existe outra maneira de fornecer símbolos NuGet para depuração em um servidor DevOps do Azure?
A resposta é sim, precisamos configurar o Visual Studio para habilitar a depuração de pacotes remotos. Você pode consultar abaixo o documento oficial e o blog detalhado:
Depurar com símbolos no Visual Studio
Pacotes Nuget de Depuração ASP.NET Core com AzureDevOps | VSTS Symbol Server
- Mas quando eu uso o pacote de instalação do nuget, apenas o package.dll faz parte do conteúdo que é baixado dos Artefatos do Azure DevOps. Por que é que?
Este é o comportamento esperado para instalar o pacote. Porque na maioria das vezes quando instalamos e usamos o pacote nuget, não precisamos do pacote de depuração, então o pacote de instalação apenas adicionará a dll necessária ao projeto e não configurará o pacote Symbols. Se quisermos depurar o pacote, temos que configurar o pacote Symbols como os links acima.
- O feedback é que o Azure DevOps Server não oferece suporte a símbolos NuGet e eles sugerem o uso de um servidor de símbolo.
O feedback que você mencionou na pergunta é para o pacote de símbolos * .snupkg e não para o pacote de símbolos. O Azure DevOps Server deve oferecer suporte à publicação de pacotes de símbolos NuGet, não aos pacotes de depuração, temos que configurar manualmente o Visual Studio para usar o Azure DevOps Server.
Aliás, como há muitas perguntas em sua postagem e são mais gerais, minha resposta não é muito específica. Se você tiver alguma dúvida sobre perguntas específicas, fique à vontade para abrir uma nova postagem com perguntas detalhadas.