Actuellement, j'emballe les builds de version avec Nuget pour les builds officiels sur nuget.org, mais je package les builds de débogage avec Nuget pour les poussées de source de symbole vers Symbolsource.org.
EDIT: (Jon Skeet, avec un parti pris du développement de Noda Time)
NuGet prend désormais en charge le transfert vers la galerie NuGet et Symbolsource.org (ou des serveurs similaires), comme indiqué . Malheureusement, il y a deux exigences contradictoires ici:
- Lorsque vous utilisez simplement une bibliothèque sans aucun débogage, vous voulez vraiment une version de version. C'est à cela que servent les versions de version, après tout.
- Lors du débogage dans une bibliothèque à des fins de diagnostic, vous voulez vraiment une version de débogage avec toutes les optimisations appropriées désactivées. C'est à cela que servent les builds de débogage, après tout.
Ce serait bien, mais NuGet ne permet pas (pour autant que je sache) que les versions de version et de débogage soient publiées de manière utile, dans le même package.
Ainsi, les choix sont:
- Distribuez les versions de débogage à tout le monde (comme indiqué dans l'exemple de la documentation) et en direct avec n'importe quelle taille et performances.
- Distribuez les versions de version à tout le monde et vivez avec une expérience de débogage légèrement altérée.
- Optez pour une politique de distribution vraiment compliquée, fournissant potentiellement des packages de version et de débogage séparés.
Les deux premiers se résument vraiment à l'effet des différences entre les versions de débogage et de publication ... bien qu'il soit intéressant de noter qu'il y a aussi une grande différence entre vouloir entrer dans le code d'une bibliothèque parce que vous voulez vérifier un comportement et vouloir pour déboguer le code d'une bibliothèque parce que vous pensez avoir trouvé un bogue. Dans le second cas, il est probablement préférable d'obtenir le code de la bibliothèque en tant que solution Visual Studio et de le déboguer de cette façon, donc je ne prête pas trop attention à cette situation.
Ma tentation est de rester avec les versions de version, avec l'espoir que relativement peu de personnes auront besoin de déboguer, et celles qui le feront ne seront pas beaucoup affectées par les optimisations de la version de version. (Le compilateur JIT effectue la plupart de l'optimisation de toute façon.)
Alors, y a-t-il d'autres options que nous n'avions pas envisagées? Y a-t-il d'autres considérations qui font pencher la balance? Le transfert de packages NuGet vers SymbolSource est-il suffisamment nouveau pour que les «meilleures pratiques» n'aient pas vraiment été établies?
nuget pack ... -Symbol
et de pousser les packages générés ...