Я изменяю сборку, используя Mono.Cecil
, и я хочу проверить ее на достоверность (будет ли результат вообще запущен). Я пытаюсь использовать PEVerify
, но у меня проблема.Может ли PEVerify сказать мне серьезность каждой ошибки?
Он был разработан для обеспечения проверки кода, поэтому он просто говорит, что ошибка означает, что IL является полностью недействительным и не будет выполняться, или это вопрос проверки, который будет полностью игнорироваться. Вот несколько примеров:
- Использование указателей и им подобных.
- Не устанавливать
.locals init
, когда метод имеет местных жителей. - Вызов
.ctor
из неконструктора.
Вопросы, которые делают IL не работать, включают:
- член не доступен с места он используется в
- член не существует..
Есть ли способ заставить его дать мне указание на серьезность проблемы? Если нет, есть ли другой инструмент, который может это сделать?
Это не то, что делает PEVerify. Он проверяет, является ли IL действительным, это ответ «Да/Нет». Безопасность и «глюки» вообще не рассматриваются. Использование неправильной версии PEVerify было просто глупой ошибкой. –
@HansPassant Я думаю, что я, возможно, был неясен или что-то в этом роде, если вы не говорите, что непроверенный IL не может бежать. Я обновил вопрос. Если я все еще что-то недопонимаю, не могли бы вы написать ответ? Я хотел бы знать. – GregRos
Использование указателей всегда создает непроверяемое приложение. Остальные - это просто ошибки, которые вам нужно исправить, когда PEVerify сообщает вам, что вы делаете это неправильно. –