Temos muitas bibliotecas internas que gostaríamos de compartilhar entre projetos dentro da empresa. Estes são alguns dos requisitos:
- as fontes da biblioteca são armazenadas em repositórios separados dos projetos finais
- os projetos finais incluem bibliotecas via NuGet
- deve ser possível inspecionar facilmente o código fonte para qualquer biblioteca enquanto trabalha em um projeto final
Configurar nosso repositório NuGet privado não é um problema, mas gerenciar fontes é. Tentamos expor as fontes via servidor de origem e meio que funciona, mas não exatamente: o VS baixa as fontes durante a depuração de código externo, mas não quando você tenta navegar para a definição / implementação. Basicamente, você só pode acessar o código-fonte durante a depuração, o que não é exatamente o que precisamos.
Então, as perguntas são:
- que maneiras existem para fornecer acesso ao código fonte das bibliotecas internas sem a necessidade de ter o código no mesmo repositório / solução
- existe uma maneira de configurar o combo Symbol server / NuGet feed para que o VS use os símbolos para navegação, não apenas para depuração?
Usar o ReSharper / outros suplementos é uma opção.
c#
source-code
closed-source
nuget
Dyppl
fonte
fonte
Respostas:
O que deve funcionar é simplesmente verificar o código-fonte do pacote NuGet e abrir a solução em uma instância separada do Visual Studio.
O Visual Studio tem um truque para alternar entre códigos em instâncias abertas, trabalhando com o que você referenciou. A primeira vez que isso aconteceu comigo enquanto eu estava depurando, foi uma revelação.
O principal problema que você enfrenta é garantir que o código de saída do pacote dependente represente a mesma versão da sua referência do NuGet no projeto principal. Não é um problema se você seguir uma política de criar sempre a versão mais recente do seu pacote.
Outro benefício dessa abordagem é que, se o pacote precisar mudar, você poderá fazer a alteração ali e depois.
fonte
Talvez você possa usar https://github.com/GitTools/GitLink . Ele adiciona um link no arquivo pdb que aponta para o repositório, para que o Visual Studio busque o código-fonte a partir daí - basta incluir o arquivo pdb no pacote nuspec e não precisará de um servidor de origem.
fonte
Portanto, não é uma solução perfeita, mas você menciona que pode opcionalmente usar o Resharper; com dotPeek e re-sharper, você pode navegar até a desmontagem do código original, é o que eu uso no trabalho, onde temos uma configuração semelhante à sua.
Acho que uma combinação do Symbol Server que você mencionou e navegar pela desmontagem são normalmente suficientes para descobrir o que está acontecendo.
Espero que ajude.
Edit: Depois de reler sua pergunta, percebo que você pede especificamente para poder navegar no código-fonte, o que não é. No entanto, espero que seja útil para alguém.
fonte