9

VS 2005'te VS 2003'te geliştirilen başka bir program tarafından yüklenecek bir dll yazdım. Bu program benim dll yüklemeye çalıştığında, System.BadImageFormatException: The format of the file 'Foo.dll' is invalid atar.System.BadImageFormatException: .NET sürümü uyuşmazlığı nasıl giderilir?

SO ve Google'da arama yaptım ve .NET'in farklı sürümünün suçlu olduğu görülüyor. Sorum şu: Bunu nasıl düzeltirim?

Ben CLR 64bit sürümünü çalıştıran ve sadece 32bit kutlandı derleme yüklenemedi çalıştığı sırada bu hata var

+0

Bu bağlantı da yardımcı oldu: http://devlicio.us/blogs/ziemowit_skowronski/archive/2008/08/22/working-with-net-1-1-in-visual-studio-2008-and-team -server.aspx – joshdick

+0

Farklı bir sözcük boyutuna sahip bir yerel (yönetilmeyen) kitaplık da bu özel durumu ekleyebilir. Doğru kelime boyutu için bir sürüm almanız veya eşleşecek barındırma uygulamasını oluşturmanız gerekir. – Pekka

cevap

7

VS2005 Projesini, VS2003 Project'in kullandığı ile aynı .Net Sürümü ile derleyin. Veya, VS2003 Projenizin boyutuna bağlı olarak, yansıtıcıyı tekrar yazıp yeniden yazınız. Bu, buradaki projeler için yaygın bir uygulamadır, bazı belirsiz sebeplerden dolayı VSS sürümü mevcut değildir.

+0

"VS2005 Project'inizle aynı .Net Sürümü ile VS2005 Projesi'ni derleyin." Bunu nasıl yapacağınızı açıklayabilir misiniz? Projemin .NET sürümünü nasıl seçeceğimi bilmiyorum. – joshdick

+0

Projenizi VS'de sağ tıklatın, ilk sekmede hedef çerçeveyi seçebilirsiniz. –

+0

Teşekkür ederim Markus. Bu VS 2005'te çalışmadı rağmen, 2008 sürümünde işe yaramadı. Yardımın için minnettarım. – joshdick

17

(VS 2003'te geliştirilen programda değişiklik olamaz). Benim durumumdaki özel derleme ODP.NET'in bir parçası olarak gelen Oracle.DataAccess.dll oldu.

+0

Ben de aynı hatayı alıyorum (farklı bir montaj ile), bunun için herhangi bir çözüm var mı? – Marek

+1

Sadece 32bit CLR'yi çalıştırdığınızdan emin olmanız yeterlidir. Sadece 32bit derlemeleri yüklerken –

+1

Bu benim sorunumun cevabıydı. Bunu bir süredir göremedim, ancak COM birlikte kullanıldığında, 'Any CPU' yapı yapılandırması kullanılırken 64 bitlik bir sunucuya dağıtıldığında bu senaryoyu çalıştırmak oldukça yaygındır. Bu durumlarda x86 yapılandırmaları kullanışlıdır. –

14

ÇÖZÜM: IIS7 üzerindeyseniz, web sitesinin Özel Uygulama Havuzu'ndaki Sağ Tıklama/Gelişmiş Ayarlar ve 32 Bit Uygulamaların Etkinleştirilmesinde True seçeneğini belirleyin. İşe yaramalı.

İlgili konular