Tenemos muchas bibliotecas internas que nos gustaría compartir entre proyectos dentro de la empresa. Estos son algunos de los requisitos:
- las fuentes de la biblioteca se almacenan en repositorios separados de los proyectos finales
- los proyectos finales incluyen bibliotecas a través de NuGet
- debe ser posible inspeccionar fácilmente el código fuente de cualquier biblioteca mientras se trabaja en un proyecto final
Configurar nuestro repositorio privado NuGet no es un problema, pero administrar las fuentes sí lo es. Intentamos exponer las fuentes a través del servidor fuente y funciona un poco , pero no del todo: VS descarga las fuentes mientras depura el código externo, pero no cuando intenta navegar a la definición / implementación. Básicamente, solo puede ir al código fuente al depurar, que no es exactamente lo que necesitamos.
Entonces, las preguntas son:
- qué formas existen para proporcionar acceso al código fuente de las bibliotecas internas sin la necesidad de tener el código en el mismo repositorio / solución
- ¿Hay alguna manera de configurar el combo de alimentación del servidor de símbolos / NuGet para que VS use los símbolos para la navegación, no solo para la depuración?
Usar ReSharper / otros complementos es una opción.
c#
source-code
closed-source
nuget
Dyppl
fuente
fuente
Respuestas:
Lo que debería funcionar es simplemente verificar el código fuente del paquete NuGet y abrir la solución en una instancia separada de Visual Studio.
Visual Studio tiene un buen truco para cambiar entre código en instancias abiertas al resolver lo que ha mencionado. La primera vez que esto me sucedió mientras estaba depurando fue una revelación.
El principal problema que enfrenta es asegurarse de que el código extraído para el paquete dependiente represente la misma versión que su referencia NuGet en el proyecto principal. No es un problema si sigues una política de siempre construir contra la versión más reciente de tu paquete.
Otro beneficio de este enfoque es que si el paquete necesita cambiar, puede hacer el cambio allí y luego.
fuente
Tal vez pueda usar https://github.com/GitTools/GitLink . Agrega un enlace en el archivo pdb que apunta al repositorio para que Visual Studio obtenga el código fuente desde allí, y luego solo necesita incluir el archivo pdb en su paquete nuspec y no necesitará un servidor fuente.
fuente
Por lo tanto, no es una solución perfecta, pero usted menciona que opcionalmente podría usar Resharper; Con dotPeek y resharper puedes navegar hasta el desmontaje del código original, es lo que uso en el trabajo, donde tenemos una configuración similar a la tuya.
Encuentro una combinación del Servidor de símbolos que mencionó y navegar por el desmontaje normalmente es suficiente para descubrir qué está sucediendo.
Espero que ayude.
Editar: Después de volver a leer su pregunta, me doy cuenta de que solicita específicamente poder navegar por el código fuente, que no es así. Sin embargo, espero que sea útil para alguien.
fuente