.NET Assembly formatida o'lcham cheklovlari bormi?

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.


person mckamey    schedule 22.09.2009    source manba
comment
Rasmni tuzatasizmi yoki havolani olib tashlay olasizmi?   -  person Laurel    schedule 22.04.2016


Javoblar (2)


Unda PEVerify ni ishga tushirishga urinib ko‘ring va qarang. nima olasiz.

Menga bu kodlash muammosi kabi ko'rinadi ... lekin nima uchun bunday bo'lishini bilmayman. Assambleyadagi metama'lumotlar jadvallariga mos kelishi mumkin bo'lgan metama'lumotlar miqdori texnik jihatdan chegaralangan, ammo bu muammo ekanligiga shubha qilaman.

Agar Ildasm, siz statistik ma'lumotlarni (Ko'rish->Statistika) yoki 2 bosqichli jarayon bo'lgan metama'lumotlar jadvallari sonini ko'rib chiqishingiz mumkin: 1. Ko'rish->Metainfo->Raw:Count,O'lchamlar 2. Ctrl+M tugmalarini bosing

person Jason Haley    schedule 27.03.2010
comment
Asboblar uchun rahmat. Men ularni sinab ko'rishim va nima topgani haqida hisobot berishim kerak. Men haqoratli usulni ko'rib chiqish uchun Reflektordan foydalanganimda (yuqoridagi skrinshotga qarang), montajning qaerda to'g'ri emasligi aniq. PEVerify menga qaerda bu noto'g'ri ekanligini aytadimi yoki ular nima uchun ham ayta oladimi? - person mckamey; 27.03.2010
comment
Agar men to'g'ri eslasam (men uni ishlatganimdan beri biroz vaqt o'tdi), ha, u metadatada qanday xatolar topilganligini ko'rsatadi. Biroq, xato xabarlarida eslatib o'tiladigan tokenlar kabi ba'zi narsalarni tarjima qilish uchun uni ildasm-da ochishingiz kerak bo'lishi mumkin. PEVerify ham juda oddiy vositadir, ya'ni u har kungi ishlab chiquvchi uchun mo'ljallanmagan, u nima haqida ketayotganini ko'rish uchun ba'zi xato xabarlarni Google orqali qidirishingiz kerak bo'lishi mumkin. - person Jason Haley; 29.03.2010

X86 da x64 kodini ishga tushirmoqchi bo'lganingizda BadImageFormatException o'chirilmaydimi?

person Peter T. LaComb Jr.    schedule 27.03.2010
comment
Bu sodir bo'ladigan vaziyatlardan biri (msdn.microsoft.com/ en-us/library/) lekin bu holda bunday emas. Alohida yig'ilishlar o'z-o'zidan yaxshi ishlaydi, lekin birlashganda muvaffaqiyatsizlikka uchraydi. - person mckamey; 27.03.2010