На даний момент я пакую збірки випусків з Nuget для офіційних збірок на nuget.org, але я налагоджую збірки налагодження з Nuget для джерела символів, що надсилає до symbolsource.org.
EDIT: (Джон Скіт, з деяким упередженням від розробки Noda Time)
NuGet тепер підтримує штовхаючи як до NuGet галереї і symbolsource.org (або аналогічних серверів), як описано . На жаль, тут є дві суперечливі вимоги:
- Просто використовуючи бібліотеку без налагодження, ви дійсно хочете побудувати випуск. Зрештою, для цього призначені збірки випусків.
- При налагодженні бібліотеки з діагностичною метою ви дійсно хочете побудувати налагоджувальну систему з вимкненими всіма відповідними оптимізаціями. Зрештою, для цього і потрібні збірки налагодження.
Це було б непогано, але NuGet (наскільки я можу зрозуміти) не дозволяє публікувати як збірки випусків, так і налагодження корисним способом, в одному пакеті.
Отже, вибір:
- Поширюйте налагоджувальні збірки всім (як показано в прикладі в документації) і живіть із будь-якими розмірами та показниками продуктивності.
- Поширюйте збірки випусків серед усіх і живіть зі слабким досвідом налагодження.
- Виберіть дійсно складну політику розповсюдження, яка потенційно надає окремі пакети випуску та налагодження.
Перші два справді зводяться до ефекту різниці між збірками налагодження та випуску ... хоча варто зазначити, що існує також велика різниця між бажанням зайти в код бібліотеки, тому що ви хочете перевірити деяку поведінку, і бажанням для налагодження коду бібліотеки, оскільки ви вважаєте, що знайшли помилку. У другому випадку, мабуть, краще отримати код бібліотеки як рішення Visual Studio і налагодити таким чином, тому я не надто прислухаюся до цієї ситуації.
Я маю спокусу просто продовжувати збірки випусків, сподіваючись, що відносно мало людей потребуватиме налагодження, а ті, хто це зробить, не будуть сильно впливати на оптимізацію збірки випусків. (Компілятор JIT все одно робить більшу частину оптимізації.)
Отже, чи є інші варіанти, які ми не розглядали? Чи існують інші міркування, які схиляють до ваги? Чи надсилання пакетів NuGet до SymbolSource є настільки новим, що "найкраща практика" насправді не була створена?
nuget pack ... -Symbol
та штовхаю згенеровані пакети ...