使用非常容易遵循的说明为带有符号服务器的关联源包的程序集构建 NuGet 包,可在 David Ebbo 的博客“发布带有源的 NuGet 包的简单方法”中找到,我确实创建了一对包:二进制和源。
但是,源包不完整,原因是源来自两个类库.csproj
,我使用 ILMerge 将第二个的结果合并到第一个中。(*) 因此,使用本文中描述的最小值.nuspec
并指向nuget.exe
“.csproj
主”库,二进制包很好,但当然源包只有“主”库的源,而不是库的源被ILMerged到“主”库中。
我该如何解决这个问题(并获取符号包中包含的两个项目的源代码,但只有二进制包中“主”项目的二进制文件)?
仅供参考,实际的nuget.exe
命令行是:nuget pack CommandLineLexing.csproj -Build -Symbols -Properties Configuration=Release
.
(*) 如果您有兴趣,我这样做的原因是,第二个库是我积累的“C# 实用程序”库的精简版本 - 你知道,一堆扩展方法和其他帮助程序 - 切下来,所以它只有这个特定项目所需的最低限度。因此,由于它已被削减,我不希望它有单独的程序集,这可能最终与完整程序集混淆(具有相同的名称,而不是强名称)。所以我使用 ILMerge 将实用程序方法放入主程序集中(并将它们标记为内部)。