Ние използваме Mono.Cecil в нашия проект. Има ли някаква функционалност, която ми позволява да проверя дали конкретен PDB и DLL съвпадат?
Благодаря!
Ние използваме Mono.Cecil в нашия проект. Има ли някаква функционалност, която ми позволява да проверя дали конкретен PDB и DLL съвпадат?
Благодаря!
Сесил не излага API, за да тества дали pdb и dll съвпадат. Той обаче прави проверка, когато четете сборка и се опитвате да прочетете нейните символи.
Но какво точно означава pdb да съответства на модул?
Това означава, че pdb и модулът споделят запис, съдържащ абсолютно същия GUID идентификатор и номер на ревизия на pdb (наричан още възраст).
Понякога искате да проверите само GUID, понякога искате да проверите и двата. Cecil сам по себе си не ви предоставя начин да замените поведението по подразбиране, но това е много лесна промяна. Разгледайте изходния код на PdbReader.
Понастоящем проверката е в PopulateFunctions и в момента не налагаме възрастта на pdb да бъде същата като тази на записа за отстраняване на грешки в асемблирането. Можете лесно да го промените с нещо повече по ваш вкус.
Или можете да използвате изцяло друг инструмент: използвах chkmatch със задоволство.