Mejores prácticas con Nuget: ¿Depurar o lanzar?

Actualmente, empaqueté las compilaciones de lanzamiento con Nuget para las compilaciones oficiales de nuget.org, pero empaqueté las compilaciones de depuración con Nuget para la fuente de símbolos que se envía a symbolsource.org.

EDIT: (Jon Skeet, con algunos sesgos del desarrollo de Noda Time)

NuGet ahora soporta empujar tanto a la galería de NuGety symbolsource.org (o servidores similares),como se documenta. Desafortunadamente, hay dos requisitos contradictorios aquí:

Cuando soloutilizando una biblioteca sin necesidad de depuración, realmente desea una versión de lanzamiento. Para eso son las versiones de lanzamiento, después de todo.Al depurar en una biblioteca con fines de diagnóstico, realmente desea una compilación de depuración con todas las optimizaciones adecuadas deshabilitadas. Para eso están las construcciones de depuración, después de todo.

Eso estaría bien, pero NuGet no permite (por lo que puedo decir) permitir que las versiones de lanzamiento y de depuración se publiquen de una manera útil, en el mismo paquete.

Por lo tanto, 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 resultados de rendimiento.Distribuya las compilaciones de lanzamiento a todos y viva con una experiencia de depuración levemente dañada.Opte por una política de distribución realmente complicada, que posiblemente proporcione paquetes separados de liberación y depuración.

Los dos primeros realmente se reducen al efecto de las diferencias entre las compilaciones de depuración y lanzamiento ... aunque vale la pena señalar que también hay una gran diferencia entre querer ingresar en el código de una biblioteca porque desea verificar algunos comportamientos 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, así que no estoy prestando demasiada atención a esa situación.

Mi tentación es seguir con las versiones de lanzamiento, con la expectativa de querelativamente pocas personas necesitarán depurar, y las que lo hagan no serán afectadasmucho Por las optimizaciones en la versión de lanzamiento. (El compilador JIT hace la mayor parte de la optimización de todos modos.)

Entonces, ¿hay otras opciones que no habíamos considerado? ¿Hay otras consideraciones que inclinan la balanza? ¿El hecho de llevar los paquetes de NuGet a SymbolSource es lo suficientemente nuevo como para que no se haya establecido la "mejor práctica"?

Respuestas a la pregunta(3)

Su respuesta a la pregunta