PDB файлы и источник не синхронизированы - PullRequest
0 голосов
/ 20 февраля 2011

Я пытаюсь проанализировать некоторые сборки с помощью NDepend, но он жалуется, что файлы pdb и исходные файлы не синхронизированы друг с другом.Однако разработка и компиляция сборок происходили на том же сервере, на котором я запускаю NDepend.

Как это исправить?Я видел, что у многих людей есть эта проблема, от поиска в Google, но никаких реальных решений.Кроме того, я буду запускать NDepend на другом сервере (сервере автоматической сборки) с сервера dev, поэтому в будущем у меня, вероятно, возникнет та же проблема.Глядя на документацию NDepend, путь к месту хранения исходного кода всегда должен быть одинаковым (но я никогда не нарушал это правило).

Исправит ли это перекомпиляция сборки?Насколько серьезна эта проблема?

Спасибо

1 Ответ

1 голос
/ 22 февраля 2011

NDepend выдает «файлы PDB и источник не синхронизирован» просто, когда обнаруживает, что исходный файл, на который ссылается файл PDB , имеет более поздний LastWriteTime, чем файл PDB. Поэтому, если ваш процесс сборки каким-либо образом обновляет LastWriteTime вашего исходного файла после компиляции и перед анализом NDepend, это может быть ложной тревогой, хотя изменение LastWriteTime вашего исходного файла после компиляции звучит неловко.

Лучшей эвристикой может быть использование контрольных сумм исходных файлов, содержащихся в файле PDB. Используя эту контрольную сумму, NDepend мог видеть, было ли изменено содержимое исходного файла. Так работает VS между прочим во время отладки. Мы (команда NDepend) не реализовали эту эвристику, потому что она может быть дорогостоящей, и простой эвристики, основанной на LastWriteTime, достаточно для большинства реальных случаев.

Патрик - NDepend Team

...