目前,我將發佈版本與官方版本的Nuget打包到nuget.org,但我使用Nuget將調試版本打包爲符號源碼推送到symbolsource.org。Nuget的最佳做法:調試還是發佈?
編輯:(喬恩斯基特,與野田開發的時間有些偏)
的NuGet現在支持推動雙方的NuGet畫廊和 symbolsource.org(或類似的服務器),as documented。不幸的是,有兩個相互矛盾的要求,在這裏:
- 當使用庫,而無需任何調試剛剛,你真的想要一個發佈版本。畢竟,這就是發佈版本的目的。
- 爲了進行診斷而調試到庫中時,您確實需要一個調試版本,並禁用所有適當的優化。畢竟,這就是調試版本的作用。
這樣會很好,但是NuGet不允許在同一個包中以有用的方式發佈發佈和調試版本。
所以,選用的是:
- 分發調試版本給大家(如在文檔的例子),並與任何尺寸和性能的命中居住。
- 將發佈版本分發給每個人,並且存在稍微受損的調試體驗。
- 尋找一個非常複雜的分發策略,可能會提供單獨的發行版和調試軟件包。
前兩個真正歸結爲調試和發佈版本之間差異的影響......雖然值得注意的是,想要步入庫的代碼之間也有很大的區別,因爲您希望檢查一些行爲,並且想要調試庫的代碼,因爲您認爲自己發現了一個錯誤。在第二種情況下,最好將庫的代碼作爲Visual Studio解決方案並以這種方式進行調試,所以我沒有太在意這種情況。
我的誘惑是隻保留與發佈版本,並期望相對很少有人會需要調試,和誰做的人不會在發佈版本的優化受到影響多。 (無論如何,JIT編譯器會進行大部分優化。)
那麼,有沒有其他的選擇我們沒有考慮過?是否有其他因素會影響平衡?將NuGet軟件包推向SymbolSource是否足夠新,以至於「最佳實踐」還沒有建立起來?
我正要問同樣的問題 - 雖然目前我正在將Release配置推送到符號源,因爲我只是使用'nuget pack ... -Symbol'並推送生成的包。 。 –
請記住,如果我在自己的問題中編輯了更多關於自己情境的細節?我想這會澄清一些問題的原因。 –
繼續前進。今天晚些時候我會趕上所有這些新帖子。 – gzak