У меня есть приложение ASP.NET работает на удаленном веб-сервере, и я только начал получать эту ошибку:компилятора C# Некорректно Оптимизирует код
Method not found: 'Void System.Collections.Generic.ICollection`1..ctor()'.
Я разобрали код в DLL, и кажется, что компилятор неправильная оптимизация кода. (Обратите внимание, что набор является класс, который реализует набор уникальных объектов Он наследует от IEnumerable.). Эта строка:
Set<int> set = new Set<int>();
компилируется в этой строке:
Set<int> set = (Set<int>) new ICollection<CalendarModule>();
Класс CalendarModule является полностью несвязанный класс !! Кто-нибудь когда-либо замечал .NET некорректно компилировать такой код раньше?
Обновление # 1: Эта проблема, кажется, представлена инструментом Microsoft ILMerge. В настоящее время мы изучаем, как его преодолеть.
Обновление № 2: Мы обнаружили два пути решения этой проблемы. Мы не совсем понимаем, в чем заключается основная проблема, но оба они исправить:
Отключить оптимизацию.
Объедините сборку с ILMerge на другой машине.
Так мы остались интересно, если сборка машина неправильно настроена как-то (что странно, учитывая, что мы использовали машину, чтобы построить релизы более года) или, если это какая-то другая проблема.
Недостаточно кода для отладки вашей проблемы. Не могли бы вы загрузить достаточно своего кода, чтобы воспроизвести проблему где-нибудь? – Wedge 2008-09-23 20:16:30
Разве вы не знаете, что Int наследует от CalenderModule? :) – FlySwat 2008-09-23 21:43:21