Загрузка специальных символов с сервера Symbol в Visual Studio, которые соответствуют регулярному выражению

У нас есть сервер символов, на котором размещаются наши PDB для наших внутренних библиотек. Все опубликованные DLL начинаются с префикса "ABC"

Я хотел бы настроить Visual Studio на загрузку только указанных модулей, соответствующих ABC. *

В Инструменты → Параметры → Отладка → Символы, когда я проверяю "Только указанные модули" и добавляю "ABC. *. dll" или "ABC. *", символы не загружаются; Однако, когда я перечисляю DLL вручную, они работают. Есть ли способ установить это?

Кроме того, когда я проверяю "Все модули, если они не исключены", мои символы загружаются, но Visual Studio также тратит время на запрос символов для других DLL, которые мы не размещаем.

Другая информация:

Использование Visual Studio 2012 SP2 NuPeek - наш сервер NuGet/Symbol Server

Ответ 1

Вы можете перенаправить свой сервер символов на питон (или язык по вашему выбору) script, выполняемый локально. Я сделал это для повторной записи запросов внутри, чтобы я мог обслуживать файлы в сетевых сценариях, не поддерживаемых 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, но псевдо-бутылочный код более краткий.