きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

NuGetパッケージのベストプラクティス

タイトルは若干釣りです。

Stack Overflowでこんなディスカッションを見つけました: Best practices with Nuget: Debug or Release?


NuGet自体が一つのパッケージにReleasaeとDegubの両方のビルドを含めれたら一番いい…とも思いましたが、ビルド時にどちらを参照するか切り替える必要があるとか考えるとその仕組みをうまく提供するのが面倒な気もしますね。手動でビルドスクリプトなんかをカスタマイズすればできなくない気がしますが…。



とは言え、『ライブラリのソースにステップインしたい』だけなら何もDebugビルドは必要なく、昨日のエントリのようにReleaseビルドでシンボルパッケージを作成し、シンボルサーバにパブリッシュしておけば十分です。ですので、『ライブラリ自体のデバッグ』が必要な時以外の大抵の場合は以下で十分なんだとは思います。

  • Releaseビルドでパッケージを作成
    • デバッグシンボル(pdb)はこれには含まない
    • (この話題とは直接関係ないが)ドキュメントコメントのxmlファイルは含めておくべき
  • Releaseビルドでシンボルパッケージを作成

どうしてもDebugビルドのライブラリを提供する必要があれば、先のスレッドでTripleEmcoder氏が回答してるようにするのが良い気がします。

  • Debugビルドのバイナリを含んだパッケージを別途作成する
  • 以下の方法のいずれか等でリポジトリに配置する
    • idを変えるかpre-release版のパッケージにするか等、Releaseビルドと区別できるようにして配置
    • Releseビルドのものとは違うリポジトリに配置