Natrafiliśmy na interesujący problem, którego wcześniej nie doświadczyłem. Mamy projekt aplikacji sieci Web ASP.NET 3.5 SP1 na dużą skalę w Visual Studio 2008 SP1, który jest kompilowany i wdrażany za pomocą projektu wdrożenia witryny sieci Web. Wszystko sprawdziło się dobrze przez ostatni rok, aż po wczorajszej odprawie aplikacja zaczęła krytycznie nie działać pod numerem BadImageFormatException
.Czy istnieją ograniczenia rozmiaru do formatu .NET Assembly?
Dany punkt kontrolny nie zmienia niczego szczególnego, a błędy pochodzą z obszarów aplikacji, które nawet się nie zmieniły. Używając Reflectora sprawdziliśmy metody naruszające zasady, aby znaleźć kodowanie śmieci w kodzie (which .NET Reflector humorously interpreted as Chinese characters). Konsekwentnie powielało to na kilku komputerach, więc nie wydaje się być związane ze sprzętem.
Dalsza kontrola wykazała, że te łańcuchy śmieci miały , a nie w zestawach używanych jako dane wejściowe do aspnet_merge.exe podczas wdrażania.
aspnet_merge.exe/Project Web Deployment Wyjście Złożenia Właściwości:
- Merge wszystkie wyjścia do jednego zespołu
- Merge każdego indywidualnego wyjścia folderu do własnego montażu
- scalić wszystkie strony i wyjścia sterujące do pojedynczego zespołu
- Utwórz oddzielny zespół dla każdej strony i wyjścia sterującego
We właściwościach projektu Web Deployment jeśli ustawiamy opcje seryjnej do pierwszej opcji („Scalanie wszystkich wyjść do pojedynczego montażu”) doświadczamy problemu, jeszcze wszystko z pozostałych opcji działa doskonale!
Moje pytanie: czy ktoś wie, dlaczego tak się dzieje? Czy istnieje ograniczenie rozmiaru do funkcji aspnet_merge.exe (wynikowa połączona biblioteka DLL wynosi około 19,3 MB)? Czy są jakieś inne znane problemy z łączeniem wyników WAP?
Uwielbiam to, jeśli jakikolwiek format Assembly/aspnet_merge.exe wiedzą o takich ograniczeniach jak ten. Wydaje mi się, że jest to Zgromadzenie 25MB, a duże, nie jest skandaliczne.
Czy możesz naprawić obraz, czy usunąć link? – Laurel