Biz ilgari boshdan kechirmagan qiziqarli masalaga duch keldik. Bizda Visual Studio 2008 SP1 da keng ko'lamli ishlab chiqarish ASP.NET 3.5 SP1 veb-ilova loyihasi mavjud bo'lib, u veb-saytlarni joylashtirish loyihasi yordamida kompilyatsiya qilinadi va joylashtiriladi. Kecha ro'yxatdan o'tgandan so'ng, dastur BadImageFormatException
.
Ko'rib chiqilayotgan ro'yxatdan o'tish hech qanday maxsus narsani o'zgartirmaydi va xatolar ilovaning hatto o'zgartirilmagan joylaridan kelib chiqadi. Reflektordan foydalanib, kodda axlat satrlari borligini aniqlash uchun buzilish usullarini tekshirdik (qaysi .NET Reflektor hazil bilan xitoycha belgilar sifatida talqin qilinadi). Biz buni bir nechta mashinalarda doimiy ravishda takrorladik, shuning uchun u apparat bilan bog'liq emas.
Keyingi tekshirish shuni ko'rsatdiki, bu axlat satrlari yo'q Joylashtirish vaqtida ="nofollow noreferrer">aspnet_merge.exe.
aspnet_merge.exe / Veb-joylashtirish loyihasining chiqish assambleyalari xususiyatlari:
- Barcha chiqishlarni bitta yig'ilishga birlashtiring
- Har bir alohida papka chiqishini o'z assambleyasiga birlashtiring
- Barcha sahifalarni va boshqaruv chiqishlarini bitta yig'ilishga birlashtiring
- Har bir sahifa va nazorat chiqish uchun alohida yig'ilish yarating
Veb-joylashtirish loyihasining xususiyatlarida, agar biz birlashma parametrlarini birinchi variantga qo'ysak ("Barcha chiqishlarni bitta yig'ilishga birlashtirish") biz muammoga duch kelamiz, ammo boshqa variantlarningbarchasi mukammal ishlaydi!
Mening savolim: nima uchun bu sodir bo'layotganini kimdir biladimi? Aspnet_merge.exe imkoniyatlari uchun o'lcham chegarasi bormi (natijada birlashtirilgan DLL 19,3 MB atrofida)? WAPlarning chiqishini birlashtirish bilan bog'liq boshqa ma'lum muammolar bormi?
Assembly formati/aspnet_merge.exe guruslari shunga o'xshash cheklovlar haqida bilsalar, men xursand bo'lardim. Menimcha, 25 MB hajmli Assambleyaga o'xshab ko'rinadi, lekin katta bo'lsa-da, bu dahshatli emas.