Я работаю над компилятором, который выдает плохой результат в некоторых случаях расширения генераторов. PEVerify просто говорит «Ошибка загрузки типа», не объясняя, почему. Когда я видел это в прошлом, обычно это было потому, что сгенерированный тип имеет неправильное количество общих параметров, но здесь, кажется, все совпадает.
Есть ли хороший способ получить более подробную информацию о том, что пошло не так с сгенерированным типом? За исключением этого, есть ли какие-нибудь хорошие советы и методы, как отследить ошибку?
Вывод из PEVerify:
C:\Build\Test> проверить testcase.exe /VERBOSE /UNIQUE
Microsoft (R) .NET Framework PE Verifier. Версия 4.0.30319.0 Copyright (c) Microsoft Corporation. Все права защищены.
[IL]: ошибка: [C:\Build\Test\testcase.exe : Testing.Linq_operatorModule::IndexWhereImpl[T]][mdToken=0x6000002][смещение 0x00000002] Не удалось разрешить токен.
[IL]: Ошибка: [C:\Build\Test\testcase.exe : Testing.Linq_operatorModule+$IndexWhereImpl$3`1[T]::.ctor][mdToken=0x6000006] [HRESULT 0 x8007000B] — была предпринята попытка загрузить программу с неправильным форматом.
[токен 0x02000004] Ошибка загрузки типа.
3 Ошибки при проверке testcase.exe
Полный дамп от ILDasm находится здесь, так как он слишком велик для размещения в сообщении SO.