2016-10-06 3 views
1

Я искал по всему миру решение, но не могу найти его.Отладка в Visual Studio открывает неверный источник вместо файла на сервере символов (если исходные файлы имеют одинаковое имя)

Я настроил TeamCity для публикации пакетов с обоими символами и источником в них в ProGet. Этот процесс отлично работает, и ProGet правильно идентифицирует символы.

У меня есть установки Visual Studio в соответствии с инструкциями на базе знаний ProGet в то

  • Добавление местоположения символов в Options-> Debugging-> Символы
  • Включена поддержка исходного сервера options-> Debugging-> Общие

Я проверил Fiddler, и символы загружаются, когда я запускаю наше приложение в отладке.

Затем, когда вы переходите к одному из методов в нашем пакете, он открывает неправильный файл. Открываемый файл, однако, называется тем же (у нас есть файл под названием Component в каждом из наших пакетов, а также в локальном решении, которое вставляется в пакет).

Если я изменю имя файла и повторно упакую и опубликую его в ProGet, проблема исчезнет, ​​и я могу войти в файл во время отладки, но это похоже на взлома.

Кто-нибудь знает, как вы можете получить Visual Studio в пользу файла на сервере символов над любыми локальными файлами в решении с тем же именем?

ответ

2

Файлы символов в каталоге проекта всегда загружаются. Для этой проблемы образец может помочь нам легко понять загруженные символы. Если в вашей локальной папке кеша был файл символов, который был загружен с сервера Symbol раньше, я знаю, что он не будет загружать его снова во время отладки вашего приложения. Поэтому я понимаю, что, поскольку ваш файл символа имеет то же имя, VS-отладка сначала будет искать и загружать символ из вашей локальной папки проекта, а затем загружать его с сервера символов или других, если на вашем локальном компьютере нет их. Вот почему вы получили эту проблему.

В обходном я мог думать:

(1) Загрузите символы вручную из Debug модулей окна, если вы действительно хотите использовать два файл с таким же именем.

(2) Использование разных названий было бы лучше.

+0

Это мои исходные файлы с тем же именем (без файлов символов). Извините, я не был уверен, что это вы имели в виду или нет? Я ожидал, что вы сможете войти в файлы с тем же именем, потому что проекты, скорее всего, будут использовать соглашения для имен файлов? Возможно, это неправильное предположение? –

+0

@Ben, я знаю, что один и тот же исходный файл будет иметь разные согласованные файлы PDB во время каждой сборки, если вы войдете в неправильный исходный файл, одна из возможных причин заключается в том, что он загрузил неправильные файлы PDB/symbol.https: // blogs .msdn.microsoft.com/junfeng/2007/11/05/mismatched-pdbs-why/ –

+0

@Ben, любое обновление? –

Смежные вопросы