1

我们维护自己的 nuget 服务器,我最近设置了一个 SymbolSource 服务器(http://www.symbolsource.org/;该网站目前没有响应。尝试使用该网站的 google 缓存或 archive.org 版本。图书馆您需要设置一个 SymbolSource 服务器可通过 nuget 获得。)以使用 .pdbs 和源来补充 nuget 服务器。按照这套安装说明(http://www.xavierdecoster.com/setting-up-your-own-symbolsource-server-step-by-step) 我能够为测试 nuget 包上传符号。我在与我以 nuget 形式使用它的机器不同的机器上创建了我的测试包,这样我的 Visual Studio 2013 将无法在本地找到源代码。我在 Visual Studio 2013 工具、选项、调试、符号中为 SymbolSource 服务器添加了一个条目。在工具、选项、调试、常规中,我取消选中“仅启用我的代码”,选中“启用源服务器支持”,并取消选中“要求源文件与原始版本完全匹配”。

我的测试 nuget 包有故意的错误(除以零),所以我会看到一些有趣的东西。当我创建一个主机应用程序并添加测试 nuget 包,然后调用错误的路径时,异常突然爆发,但不是显示源代码,而是弹出一个对话框,询问我源 .cs 文件的位置。由于测试nuget包的源代码不在项目使用它的机器上,我被迫点击“取消”。Visual Studio 破坏了 nuget 包之外的代码。那不是我所希望的。我曾希望 Visual Studio 会从 SymbolSource 服务器打开源代码。

.pdb 下载正确。如果我在调用代码中放置一个断点并进入对 nuget 包中对象的调用,我会看到 nuget 包的正确源代码。如果我随后调用在 nuget 对象中引发异常的代码,调试器会破坏 nuget 包的源代码,就像我在上面希望的那样。一旦发生这种情况,我可以关闭并重新启动项目,并且在 nuget 程序集中的中断仍然会弹出从 SymbolSource 服务器下载的源代码。

我可以猜到,当 nuget 包中出现异常时,Visual Studio 2013 会下载(或已经下载).pdb 文件。然后它知道它需要什么源文件,但在异常情况下它不会从 SymbolSource 服务器下载源文件。相反,它会打开一个对话框,询问源文件在本地计算机上的位置。如果源代码由于其他原因被下载(例如我已经介入),那么它会找到以前下载的源代码。

这似乎是 Visual Studio 错误,或者我错过了 Visual Studio 中的某些设置。我还需要做些什么才能在异常情况下从 SymbolSource 服务器下载源代码,而无需事先进入 nuget 包中的代码?

4

0 回答 0