настройка сборок для отладки

Сборки .Net имеют файлы pdb для отладки. Файл PDB указывает на точное местоположение источника среди других деталей. Это хорошо, если я создаю сборку и отлаживаю ее локально. Проблема начинается, когда вам нужно развернуть свои сборки на других компьютерах. Отладку в таких сценариях можно выполнить двумя способами; 1. Вы можете поместить источник в общее расположение и указать его, когда VS запрашивает его. 2. Вы можете использовать исходный сервер, указать исходный элемент управления и настроить VS для использования этого

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


person praskris    schedule 08.06.2012    source источник
comment
Обычно у вас есть система контроля версий, и это делает ваш код доступным из любого места.   -  person Ignacio Soler Garcia    schedule 12.06.2012
comment
Вы отлаживаете в основном или полностью в своей локальной сети?   -  person wal    schedule 12.06.2012
comment
@SoMoS - у меня есть система управления версиями, и я понимаю, что могу индексировать PDB, и это будет связано с системой SCM. На самом деле я пытался рассмотреть сценарий, в котором мне не нужно было размещать сервер символов и т. д. У меня есть PDB прямо рядом с моей сборкой, как я могу легко предоставить доступ к исходному коду для него. Надеюсь, это имеет смысл   -  person praskris    schedule 14.06.2012
comment
@wal - Не уверен, что правильно понял ваш вопрос. Я говорю об отладке любой сборки. Вы предлагаете мне поместить код на общий диск и собрать сборку из этого места? Таким образом, источник можно было подобрать? У нас есть эта система, но она не очень гибкая, а сборка с общего диска происходит медленнее.   -  person praskris    schedule 14.06.2012
comment
@praskris вам не нужно строить его из этого места. вы можете построить его из любого места. я предлагаю поместить исходный код и pdb в центральное место (если вы не развертываете pdb с вашими dll), а затем, когда вам нужно отладить, вы можете указать VS загрузить pdb из общего местоположения и указать VS на источник код (VS сообщит вам, если не сможет найти источник в указанном месте, встроенном в файл pdb)   -  person wal    schedule 15.06.2012
comment
@wal - да, я мог бы это сделать. Пользователей, использующих библиотеки, может раздражать указание исходного пути для каждой сборки, на которую они ссылаются при отладке. У нас есть распределенная файловая система, и код находится в этом месте. Мой вопрос в том, является ли вариант с исходным кодом плохой идеей? я чувствовал, что это проще. хотел получить мнение о том, как люди справляются с этим.   -  person praskris    schedule 15.06.2012


Ответы (1)


PDB на самом деле не нужен для сборок .NET! Файлы PDB НЕ указывают на точное местоположение источника, они содержат только GUID связанного исходного файла!

Подробнее о как связаны файлы PDB и исходники

См. John Robbins для получения дополнительной информации....

.NET PDB содержит только две части информации: имена исходных файлов и их строк, а также имена локальных переменных. Вся остальная информация уже находится в метаданных .NET, поэтому нет необходимости дублировать ту же информацию в файле PDB.

person mox    schedule 12.06.2012
comment
Однако ключевой частью являются «имена локальных переменных (и информация)», которые он содержит. - person leppie; 12.06.2012
comment
@mox вы подразумеваете, что вам не нужны pdb для эффективной отладки? - person wal; 12.06.2012
comment
@wal - я ничего не имею в виду. Для сборок .Net используются PDB, как описано Джоном Роббинсом. - person mox; 12.06.2012
comment
@wal - я написал упомянутую выше статью о том, как связаны файлы PDB и исходники. - person mox; 12.06.2012
comment
Спасибо, я прочитал статью Джона Роббинса. Это было познавательно, но в нем упоминается, что путь к исходному файлу сохраняется, если вы не индексируете его. Я не могу придумать другого способа для отладчика получить расположение исходного файла, если он не хранится в файле PDB. Здесь мои знания ограничены, поправьте меня, если я ошибаюсь. ...if you use a source file MYCODE.CPP in C:\FOO, what's embedded in the PDB file is C:\FOO\MYCODE.CPP. This is probably what you already suspected, but I just wanted to make it clear. - person praskris; 14.06.2012
comment
Это статья, на которую я ссылался:ссылка на статью - person praskris; 14.06.2012