Saat ini, saya mengemas rilis build dengan Nuget untuk build resmi ke nuget.org, tetapi saya mengemas build debug dengan Nuget untuk push source simbol ke symbolource.org.
EDIT: (Jon Skeet, dengan beberapa bias dari pengembangan Noda Time)
NuGet sekarang mendukung pengiriman ke galeri NuGet dan symbolource.org (atau server serupa), seperti yang didokumentasikan . Sayangnya, ada dua persyaratan yang kontradiktif di sini:
- Saat hanya menggunakan perpustakaan tanpa perlu debugging, Anda benar-benar menginginkan rilis build. Itulah gunanya rilis build.
- Saat men-debug ke pustaka untuk tujuan diagnostik, Anda benar-benar menginginkan build debug dengan semua pengoptimalan yang sesuai dinonaktifkan. Itulah gunanya build debug.
Itu akan baik-baik saja, tetapi NuGet tidak (sejauh yang saya tahu) mengizinkan rilis dan debug build untuk dipublikasikan dengan cara yang berguna, dalam paket yang sama.
Jadi, pilihannya adalah:
- Distribusikan build debug kepada semua orang (seperti yang ditunjukkan dalam contoh di dokumen) dan aktifkan dengan ukuran dan kinerja apa pun yang muncul.
- Distribusikan rilis build untuk semua orang dan hidup dengan pengalaman debug yang sedikit terganggu.
- Gunakan kebijakan distribusi yang sangat rumit, berpotensi menyediakan rilis terpisah dan paket debug.
Dua yang pertama benar-benar bermuara pada efek perbedaan antara debug dan rilis build ... meskipun perlu dicatat bahwa ada juga perbedaan besar antara ingin masuk ke dalam kode perpustakaan karena Anda ingin memeriksa beberapa perilaku, dan menginginkan untuk men-debug kode perpustakaan karena Anda yakin telah menemukan bug. Dalam kasus kedua, mungkin lebih baik untuk mendapatkan kode perpustakaan sebagai solusi Visual Studio dan debug seperti itu, jadi saya tidak terlalu memperhatikan situasi itu.
Godaan saya adalah tetap menggunakan build rilis, dengan harapan bahwa relatif sedikit orang yang perlu melakukan debug, dan orang yang melakukannya tidak akan banyak terpengaruh oleh pengoptimalan dalam build rilis. (Kompiler JIT melakukan sebagian besar pengoptimalan.)
Jadi, apakah ada opsi lain yang belum kami pertimbangkan? Apakah ada pertimbangan lain yang memberi keseimbangan? Apakah mendorong paket NuGet ke SymbolSource cukup baru sehingga "praktik terbaik" benar-benar belum dibuat?
nuget pack ... -Symbol
dan mendorong paket yang dihasilkan ...