我们有一个符号服务器来托管我们内部库的 PDB。所有发布的 DLL 都以前缀“ABC”开头
我想将 Visual Studio 配置为仅加载与 ABC 匹配的指定模块。*
在工具 -> 选项 -> 调试 -> 符号中,当我选中“仅指定的模块”并添加“ABC.*.dll”或“ABC.*”时,没有加载任何符号;但是,当我手动列出 DLL 时,它们会起作用。有什么办法可以设置吗?
此外,当我选中“所有模块,除非排除”时,我的符号已加载,但 Visual Studio 也浪费时间为我们不托管的其他 DLL 请求符号。
其他信息:
使用 Visual Studio 2012 SP2 NuPeek 是我们的 NuGet / Symbol Server
您可以将您的符号服务器重定向到本地运行的 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,但是pseudo bottle.py代码更简洁。