使用真正簡單的按照指示爲符號服務器的相關源代碼包構建NuGet包,這裏可以在David Ebbo的博客"The easy way to publish NuGet packages with sources"上找到我確實創建了一對包:二進制和源代碼。如何用一個csproj程序集獲得二進制NuGet程序包,但是有兩個csproj源程序的相應源程序包?
但是,源代碼包不完整,原因是源來自兩個類庫.csproj
,我使用ILMerge將第二個結果合併到第一個。 (*)因此,使用本文中描述的最小.nuspec
並指定nuget.exe
爲.csproj
爲「主」庫,二進制包是好的,但是當然源包只有「主」庫的來源,而不是爲ILMerged入「主要」圖書館的圖書館。
我該如何解決這個問題(並且獲取的源代碼包含在符號包中的項目,但僅包含二進制包中「main」項目的二進制文件)?
僅供參考,實際nuget.exe
命令行爲:nuget pack CommandLineLexing.csproj -Build -Symbols -Properties Configuration=Release
。 (*)如果你有興趣,我這樣做的原因是第二個庫是我累積的「C#工具」庫的一個減少版本 - 你知道,一堆擴展方法和一組擴展方法其他幫手 - 減少,所以它只有這個特定項目所需的最低限度。所以,既然它被削減了,我不希望有單獨的程序集,它可能最終與整個程序集(具有相同的名稱,而不是一個強名稱)混淆。所以我使用ILMerge將實用程序方法放入主程序集(並將其標記爲內部)。