visual tag studio restaurar paquetes code closing brackethighlighter visual-studio debugging nuget

visual-studio - tag - visual studio code autocomplete html



¿Depuración de paquetes NuGet privados? (6)

He publicado algunas bibliotecas privadas / internas como paquetes NuGet, usando la opción de símbolos. Los paquetes y símbolos están alojados en un recurso compartido de red interno. ¿Cómo puedo ingresar a estos paquetes cuando se depura?

Cuando paso al código de estos paquetes, Visual Studio muestra una página "Sin fuente disponible" / "Sin símbolos encontrados". Al hacer clic en "Cargar símbolos" solo se permiten archivos pdb, no paquetes de símbolos.

Estos paquetes no son adecuados para su publicación en NuGet Gallery / SymbolSource.


Ahora también hay una herramienta llamada GitLink ( https://github.com/GitTools/GitLink ) que puede insertar en los enlaces del archivo de símbolos a los archivos GIT versionados de su fuente.


Descubrí que no funciona en absoluto. Las referencias del paquete NuGet están cerradas y no se pueden usar en el depurador. Lo que hice en su lugar fue eliminar la referencia de ensamblaje del proyecto y, en su lugar, agregué una referencia a una compilación de Depuración de la DLL directamente por la ruta.

Luego para detener el depurador en algún lugar de ese código, inserté la llamada System.Diagnostics.Debugger.Break(); en ese código. Cuando se ejecuta, el depurador se detendrá en esa línea, que es básicamente un punto de corte definido por el código. Esto abrirá el archivo fuente correcto y saltará a esa línea automáticamente.

Abra el proyecto de biblioteca en una segunda instancia de VS y desplace las llamadas de Break según sea necesario y reconstruya la biblioteca. Cuando termine, elimine esas llamadas del código de la biblioteca y restaure la referencia original (es posible que deba volver a instalar el paquete NuGet).


Hay un par de opciones; uno es configurar y configurar su propio servidor de símbolos .

También puede descargar Inedo''s ProGet , habilitar el servicio de símbolos en el feed de destino y luego publicar sus paquetes en ProGet. Todo esto se puede hacer con la edición gratuita de ProGet.

descargo de responsabilidad - mi trabajo diario es en Inedo


La forma en que lo hacemos (y funciona):

  1. Genera "* .symbols.nupkg"
  2. Implementar el paquete de símbolos en el servidor SymbolSource (privado)
  3. Configurar IDE
  4. Agregar la biblioteca requerida para proyectar usando NuGet (desde nuestro servidor SymbolSource)
  5. ¡Depurar!

Enlaces que pueden ser útiles:

    • Instalación del servidor SymbolSource

    • Importante: "Herramientas de depuración para Windows" no se instalará si detecta una versión de Red C ++ Redist más nueva de lo que necesita / espera

    • Vs configuración para depurar usando SymbolSource

    • La URL para agregar es como http://your.symbolsource-server.com:[port]/[appContext]/WinDbg/pdb


Puede configurar su propio servidor de fuente de símbolos internamente utilizando esos recursos compartidos de red. Puedes encontrar un tutorial paso a paso en mi blog.

Básicamente se trata de crear una aplicación MVC vacía y ejecutar

Install-Package SymbolSource.Server.Basic

A partir de ahí, debe configurar la infraestructura de alojamiento y configurar Visual Studio y crear agentes.


¿Cuál es el comando que usaste para generar los paquetes con los símbolos? Traté de hacer exactamente lo mismo que el nuget.exe pack -Prop Configuration=Release Framework.csproj -Symbols Esto crea dos archivos: Framework.nupkg y Framework.symbols.nupkg . Puse estos archivos en un recurso compartido de red, los usé de otro proyecto y la depuración funcionó bien.

¿Has intentado poner los archivos * .nupkg y * .symbols.nupkg en un disco local en lugar de un recurso compartido de red?