2

我使用 NuGet.org 上的说明为我的每个开源 DLL 创建符号包。例如,我曾经nuget pack -Version 2.4.3 -symbols Core\Loyc.Essentials.nuspec创建Loyc.Essentials.2.4.3.nupkgLoyc.Essentials.2.4.3.symbols.nupkg.

将 .nupkg 重命名为 .zip,我验证了该.symbols.nupkg包是否包含预期的 .dll、.pdb 和 .xml 文件,以及文件夹lib\net45中的完整源代码。src

我使用 AppVeyor 使用类似的nuget命令构建我的包,并使用以下选项发布符号和非符号包:

deploy: - provider: NuGet server: api_key: secure: DHTp3wMjKqyca2PWftol2wq7DxE9KdL8AizHVIS14T4DSSMXgc0bIiCGvvA8SkTH skip_symbols: false # Whether to not publish symbol pkgs (src/pdb) artifact: /.*\.nupkg/ on: branch: master # Release from master branch only. appveyor_repo_tag: true # Deploy on tag push only.

它似乎工作:

Publishing Loyc.Essentials.24.3.0.nupkg to https://www.nuget.org/api/v2/package...OK
Publishing Loyc.Essentials.24.3.0.symbols.nupkg to https://nuget.smbsrc.net/api/v2/package...OK

我创建了一个测试项目,通过 VS NuGet GUI 添加了我的包。

最后,我按照这里有关如何使用符号服务器的详细说明进行操作。根据nuget.org 的建议,我还将https://nuget.smbsrc.net添加到 VS 调试选项中的“符号文件 (.pdb) 位置”列表中 | 符号。

它不起作用。我注意到在 SymbolCache 中有一个FailedLoads文件夹,其中包含我的每个 DLL(和 NUnit)的文本文件。文本文件仅包含“未找到 PDB”。为什么可能找不到 PDB?

4

0 回答 0