Могу ли я иметь несколько PDB для одной и той же AssemblyVersion на сервере символов?

У меня есть библиотека классов, которая имеет AssemblyVersion 1.0.0.0 и должна сохранять его даже при обновлении (SharePoint...).

Поэтому я использую AssemblyFileVersion в качестве "настоящей" версии.

Теперь я хочу настроить Symbol Server и задаюсь вопросом, возможно ли на самом деле иметь несколько PDB для одной и той же AssemblyVersion, и она будет работать автоматически?

PublicKeyToken также всегда один и тот же, поэтому нет никакого способа дифференцировать его.

1 ответ

Решение

Да. Ключ SymbolServer основан на отметке времени и размере файла соответствующей DLL при первом создании - этот ключ хранится как в самой DLL, так и в PDB, поэтому каждая сборка (исключая несчастные случаи и надуманные сценарии) будет иметь уникальный связанный идентификатор с этим.

Конечно, вы можете проверить это достаточно просто: просто сделайте две сборки (даже не меняйте исходный код...) и сохраните результаты в symstore - вы сможете увидеть, как хранятся две отдельные PDB.

Плюсом этого является то, что вам не нужно беспокоиться об уникальных версиях сборки. И, конечно же, недостатком является то, что вы отказались от своей работы, если случайно потеряли PDB для сборки, которую вы уже отправили...

Смотрите также:

Microsoft Symbol Server / Алгоритм хеширования локального кэша

Другие вопросы по тегам