При попытке открыть мой Windows Forms приложение (я буду называть его MyApplication.exe
) на машине, кроме моего Dev машины, диалоговое окно, говоря:Как диагностировать «System.TypeLoadException» ошибка
MyApplication
перестал работать
Окна можно проверить онлайн для решения задачи
- Проверить онлайн для решения и закрыть программу
- Закройте программу
Подробности
Сигнатура проблемы:
Problem Event Name: CLR20r3
Problem Signature 01: myapplication
Problem Signature 02: 1.2.0.0
Problem Signature 03: 51c34395
Problem Signature 04: mscorlib
Problem Signature 05: 4.0.0.0
Problem Signature 06: 50484bd7
Problem Signature 07: 1204
Problem Signature 08: 89
Problem Signature 09: System.TypeLoadException
OS Version: 6.1.7600.2.0.0.256.48
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
Важно отметить, что я использую ILMerge объединить MyApplication.exe
и ссылку MyLibrary.dll
сборок в одну сборку (название выхода MyApplication.exe
).
Кроме того, важно отметить, что тестовые машины могли запускать .exe без проблем, пока я не выпустил обновление, которое добавило extension method
в проект MyApplication.
Другими словами, после того, как я добавил метод расширения для MyApplication
, затем используется ILMerge
объединить .exe и .dll, то испытательные машины будут получать вышеуказанную ошибку (Интересно, что мой DEV машина может работать слитый EXE-файл с Нет проблем).
Есть ли известная проблема с методами ILMerge и Extension? Это звучит странно, но это единственное, что изменилось в моем коде.
Поскольку я не могу воспроизвести проблему на своей машине dev, есть ли у вас какие-либо советы относительно того, как я могу найти решение проблемы с ошибкой , которая возникает на тестовых машинах?
System Info
- Таргетинг .NET Framework 4.0 (все мои тестовые машины это установлено)
- ILMerge Версия 2.12.803
- Dev машины: Windows 2008 Server R2; Visual Studio 2010 Pro
- Клиентские машины: XP, Win7 и Win8 (все из них получают ошибку)
Какая версия платформы .NET делают клиентские машины установили? Это 3.5 или даже версия клиента? – ChrisF
Все они имеют установленный 4.0 – Jed
на вашей машине для сборки .net 4.5 установлен? –