Actualmente, empaqueto las compilaciones de la versión con Nuget para las compilaciones oficiales en nuget.org, pero empaqueto las compilaciones de depuración con Nuget para los empujes de la fuente de símbolos en symbolsource.org.
EDITAR: (Jon Skeet, con algún sesgo del desarrollo de Noda Time)
NuGet ahora admite la inserción tanto en la galería NuGet como en symbolsource.org (o servidores similares), como se documenta . Desafortunadamente, aquí hay dos requisitos contradictorios:
- Cuando solo usa una biblioteca sin necesidad de depurar, realmente desea una compilación de lanzamiento. Después de todo, para eso son las versiones de lanzamiento.
- Al depurar en una biblioteca con fines de diagnóstico, realmente desea una compilación de depuración con todas las optimizaciones apropiadas deshabilitadas. Después de todo, para eso son las compilaciones de depuración.
Eso estaría bien, pero NuGet (hasta donde yo sé) no permite que tanto la versión de lanzamiento como la versión de depuración se publiquen de una manera útil, en el mismo paquete.
Entonces, las opciones son:
- Distribuya las compilaciones de depuración a todos (como se muestra en el ejemplo en los documentos) y viva con cualquier tamaño y éxito de rendimiento.
- Distribuya las compilaciones de la versión a todos y viva con una experiencia de depuración ligeramente deteriorada.
- Opte por una política de distribución realmente complicada, que potencialmente proporcione paquetes de liberación y depuración separados.
Los dos primeros realmente se reducen al efecto de las diferencias entre las compilaciones de depuración y versión ... aunque vale la pena señalar que también hay una gran diferencia entre querer ingresar al código de una biblioteca porque desea verificar algún comportamiento y querer para depurar el código de una biblioteca porque cree que ha encontrado un error. En el segundo caso, probablemente sea mejor obtener el código de la biblioteca como una solución de Visual Studio y depurar de esa manera, por lo que no estoy prestando demasiada atención a esa situación.
Mi tentación es seguir con las compilaciones de la versión, con la expectativa de que relativamente pocas personas necesitarán depurar, y las que lo hagan no se verán afectadas mucho por las optimizaciones en la compilación de la versión. (El compilador JIT realiza la mayor parte de la optimización de todos modos).
Entonces, ¿hay otras opciones que no hayamos considerado? ¿Hay otras consideraciones que inclinan la balanza? ¿Enviar paquetes NuGet a SymbolSource es lo suficientemente nuevo como para que no se hayan establecido las "mejores prácticas"?
nuget pack ... -Symbol
y presionando los paquetes generados ...