2013-05-20 27 views
15

duplicate soruyu sormaya gidiyorum ama senaryoyu tamamen farklı düşünüyorum çünkü üniteye gittiğimde SetUp: System.BadImageFormatException: programımın nunit aracıyla test sonra NUnit bu hataSystem.BadImageFormatException: installutil.exe ile hizmet yüklemeye çalışırken dosya veya montaj… hatalı biçim yüklenemedi

"NewTest.testtest (TestFixtureSetUp) gerçekleşmesi dosya veya derleme yüklenemedi 'AUTO_REPAIR, Sürüm = 1.0.0.0, Culture = neutral , PublicKeyToken = null 'veya bağımlılıklarından biri. Yanlış bir biçimde bir program yüklemek için girişimde bulunuldu. "

Bu aracın neden bu hata olduğunu merak ediyorum? Eminim projede veya herhangi bir test durumunda hatam yok.

Lütfen bana yardım edin. Burada

bir 64 bit işlemi ya da tam tersi bir 86 takımını yük girişiminde

enter image description here

+0

için gerçek bir platformdur budur. – Renan

+2

@Renan yığın taşması politikasından korkuyorum .... – aami

cevap

27

görsel stüdyoda projeniz (Sağ çözümünüz tıklayın ve ardından özelliklere gidin bu hatayı x 86 için

  1. Seti Platformu hedefini çözmek için iki yol sonra seçeneği inşa bulacak ve tıkladığınızda vardır inşa üzerinde platform hedefi bulacaksınız). Platform hedefinizi x86'ya ayarladıktan sonra, nunit kullanarak birim testinizi yapmaya çalışın.

veya

  1. Basitçe nunit klasörünün bin klasöründe nunit-x86.exe öğrenmek ve sadece bu exe dosyasını çalıştırın ve tekrar herhangi istisna :)
+0

Eğer bunun karşısında tökezleyen başkaları için - eğer x64 üzerindeyseniz, tüm projelerinizi bu özel duruma getirin aksi halde –

+0

sorun yaşamaya devam edersiniz. Başvurulan DLL'leriniz AnyCPU'ya ayarlanmışsa, ana yürütülebilir (.exe) projesini ilgili kemer olacak şekilde ayarlayabilirsiniz. Ben bu yaklaşımı _much_ bulmayı daha kolay buluyorum, çünkü değiştirmeye ihtiyacınız olan tek şey ana giriş noktasıdır (.exe) –

13

BadFormatException meydana gelir ve bu hatanın görüntüdür. NUnit belgelerine göre (http://www.nunit.org/index.php?p=nunit-gui&r=2.4.2) varsayılan koşucu AnyCPU olarak derlenmiştir, bu 64 bitlik bir makinede 64 bit işlem anlamına gelir. Derlemelerinizden veya bağımlılıklarından herhangi biri doğrudan x86 için derlenmişse, bu istisnayı alırsınız.

Nunit-x86 veya Nunit-console-x86.exe dosyasına geçin ve her şey doğru şekilde yüklenmelidir.

11

görmez Ammar'ın yorumuna dayanmak için. Sadece Configuration Manager'ın aktif platform olduğunu söylediğine güvenmeyin. Proje özelliklerine gidin ve orada da kontrol, bu senin senaryo farklı ise, o zaman bir kopya değil projeye

enter image description here

+0

Bu beni doğru yöne yönlendirdi. Sorunum hemen hemen aynıydı, ancak aslında Platform Hedefi altındaki "Tercih Edilen 32-bit" kutusunun varsayılan olarak kontrol edilmesinden kaynaklanıyor. Bu kontrolü kaldırdım ve işe yaradı! – KangarooWest

+0

Bir x64 sistemde 'AnyCPU' ve x64 - var.İkisini de 'Her CPU' olarak değiştirdim ve hata gitti. Yardım için teşekkürler. – FrenkyB

İlgili konular