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

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

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

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

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

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

Использование Visual Studio 2012 SP2 NuPeek — это наш сервер NuGet / Symbol.


person badazzhindu    schedule 30.04.2013    source источник
comment
Вы пробовали делать *ABC.*.dll? Подстановочный знак пути может иметь значение.   -  person Ben Reich    schedule 17.06.2013


Ответы (1)


Вы можете перенаправить свой сервер символов на скрипт 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, но код псевдобутылки более лаконичен.

person carpenterjc    schedule 18.06.2013