Мы столкнулись с интересной проблемой, которую я раньше не испытывал. У нас есть проект ASP.NET 3.5 SP1 для веб-приложений с крупным масштабом в Visual Studio 2008 с пакетом обновления 1 (SP1), который скомпилируется и развертывается с использованием проекта развертывания веб-сайта. В прошлом году все отлично работало, пока вчера после регистрации не было критического сбоя приложения с BadImageFormatException
.Существуют ли ограничения размера для формата .NET Assembly?
Запрашиваемая информация не изменяет ничего особенного, и ошибки возникают из областей приложения, которые даже не изменились. Используя Reflector, мы проверили методы оскорбления, чтобы обнаружить, что в коде были строки мусора (which .NET Reflector humorously interpreted as Chinese characters). Мы последовательно воспроизводили это на нескольких машинах, поэтому оно не похоже на аппаратное обеспечение.
Дальнейшая проверка показала, что эти строки мусора не существуют в сборках, используемых в качестве входных данных для aspnet_merge.exe во время развертывания.
aspnet_merge.exe/Web Project Развертывание Выход Сборки Свойства:
- Объединить все выходы к одной сборке
- Merge каждый отдельный выход папки для своей собственной сборки
- Объединить все страницы и управляющие выходы на один узел
- Создайте отдельную сборку для каждой страницы и выход управления
В свойствах проекта развертывания веб если мы устанавливаем параметры слияния в первый вариант («Объединение всех выходов одного узла») мы испытываем проблемы, еще всех других вариантов работают отлично!
Мой вопрос: Кто-нибудь знает, почему это происходит? Существует ли ограничение по размеру возможностей aspnet_merge.exe (результирующая объединенная DLL составляет около 19,3 МБ)? Есть ли другие известные проблемы с объединением вывода WAP?
Мне понравилось бы, если бы какой-либо формат Assembly/aspnet_merge.exe-гуру знал о любых таких ограничениях, подобных этому. Кажется мне, как 25MB Ассамблеи, в то время как большой, не возмутительно.
Вы можете исправить это изображение или удалить ссылку? – Laurel