我们有一个符号服务器,用于托管内部库的 PDB。所有发布的 DLL 都以前缀“ABC”开头
我想将 Visual Studio 配置为仅加载与 ABC 匹配的指定模块。*
在“工具”->“选项”->“调试”->“符号”中,当我选中“仅指定模块”并添加“ABC.*.dll”或“ABC.*”时,没有加载任何符号;然而,当我手动列出 DLL 时,它们就可以工作了。有什么办法可以设置吗?
此外,当我选中“所有模块,除非排除”时,我的符号会被加载,但 Visual Studio 也会浪费时间为我们不托管的其他 DLL 请求符号。
其他信息:
使用 Visual Studio 2012 SP2 NuPeek 是我们的 NuGet/Symbol 服务器
最佳答案
您可以将符号服务器重定向到本地运行的 python(或您选择的语言)脚本。我这样做是为了在内部重写请求,以便我可以在 Microsoft 不支持的网络场景中提供文件。
如果您查看 http 请求,您可以连接到 URL 来运行您的正则表达式。 在某些时候,符号服务器将发出如下所示的请求:
http://server.name/serverpath/my.pdb/CHECKSUMOFPDB0123456/my.pdb
使用 Bottle.py,您可以编写这样的服务器。
@route('/<pdbname>/<pdbchecksum>/<pdbname2>')
def http_handler(pdbname, pdbchecksum, pdbname2):
# check its directly requesting a pdb, rather than redirects or similar
if pdbname == pdbname2:
if matchesMyRegex(pdbname):
return redirect("http://myserver/%s/%s/%s" %(pdbname, pdbchecksum, pdbname2))
return abort(404, "Not found")
我使用了SimpleHTTPServer,但是伪bottle.py代码更简洁。
关于visual-studio - 从 Visual Studio 中的符号服务器加载与正则表达式匹配的特定符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16299843/