Kesalahan: «Tidak dapat memuat tipe MvcApplication»

240

Saya mendapatkan kesalahan

Tidak dapat memuat jenis MvcApplication

ketika saya mencoba menjalankan situs web saya.

Bagaimana cara memperbaikinya?

Gil
sumber
35
Saya mendapat kesalahan ini secara acak suatu hari di server build kami. melakukan membangun kembali secara manual menyelesaikannya.
Zack
1
Jalur Output diatur dalam properti proyek pada tab build
silasdavis
8
hapus file global.asax dan tambahkan yang baru, dan Anda akan baik-baik saja.
DotNetGeek
4
Ternyata proyek baru itu tidak dipilih dalam konfigurasi aktif untuk build.
JGeerWM
4
Jika Anda baru saja menambahkan proyek atau jika Anda baru saja mengubah konfigurasi publikasi (yaitu beralih dari AnyCPU ke x64) maka mungkin proyek itu tidak dibangun ketika Anda menjalankannya. Pergi ke BUILD-> CONFIGURATION MANAGER dan centang kolom build, centang kotaknya. Saya baru saja mengalami masalah ini sekarang. Anda juga akan melihat bahwa breakpoints Anda adalah lingkaran yang jelas saat menjalankan aplikasi. Saya pikir ini adalah hasil dari build default untuk .net 4.5.1 pada arsitektur prosesor yang mendukung 32 bit. Hanya masalah jika Anda memeriksa x64
David Bridge

Jawaban:

115

Walaupun terdengar bodoh, coba semuanya dan itu tidak berhasil dan akhirnya restart VS2012 untuk melihatnya berfungsi lagi.

gurrawar
sumber
1
LMFAO, bekerja untuk saya juga setelah mencoba semua yang disebutkan di sini dan tidak berhasil! Terima kasih dan +1!
Yustme
Masalah yang sama di sini. Kesalahan muncul setelah penggabungan dan tidak akan hilang sampai VS2012 dimulai kembali.
StuartQ
1
Bagi saya, yang mungkin terjadi adalah port digunakan oleh instance kedua dari Visual Studio yang tidak memiliki proyek dikompilasi.
Clay Lenhart
Bekerja untuk saya juga. Benar-benar dump.
PAWAN RAJ Shakya
5 tahun kemudian VS2017 dan ini masih solusinya. : /
Sagiv bg
105

-Bagi saya, perbaikannya adalah mengubah jalur output di tab build. Saya mengubah jalur output ke bin\dan kesalahan hilang.

-Perbaikan lain bisa jadi Anda memiliki set proyek start up yang salah.

bob baru
sumber
8
Ini juga masalah kami. Ini sebelumnya telah diatur ke sesuatu seperti Debug \ x86 \ bin
t3rse
4
HA! Ini adalah kedua kalinya dalam dua tahun saya pernah ke artikel ini dengan masalah ini, pertama kali itu adalah jawaban teratas, kedua kalinya ini adalah jawaban ini.
Ben Lesh
1
Terima kasih! Ini juga menggangguku. Saya telah mengubah platform untuk menghapus beberapa peringatan, dan jalur output berubah tanpa saya sadari.
camainc
6
Ini adalah jawaban yang tepat untuk saya ... Ada ide tentang mengapa Visual Stupido bersikap seperti ini?
andreapier
1
Yup, ini dia. Mengubah ke `bin` membuat semuanya berfungsi seperti yang diharapkan. @andreapier: Ya, VS2012 juga tampaknya berperilaku bodoh. Seseorang memperbaikinya ASAP! :)
sekarang dia yang tidak boleh disebutkan namanya.
82

Saya mendapatkan kesalahan yang sama dan meskipun melakukan semua yang disebutkan di sini dan di tempat lain tidak ada yang berhasil. Ternyata saya telah menyalin kode sumber global.asax.cs dari versi proyek sebelumnya yang memiliki nama berbeda. Jadi namespace Testseharusnya begitu namespace Test.WebUI. Kesalahan konyol tentu saja dan saya agak malu untuk menulis ini! Tetapi menulis dengan harapan bahwa kesalahan yang sama dari orang lain dapat membawanya untuk memeriksa aspek sepele ini juga.

Vipul
sumber
Terima kasih, Vipul. Saya baru saja melakukan hal yang sama dan berpikir bahwa saya telah kehilangan banyak pekerjaan sebagai akibatnya. Hanya mengubah nama namespace telah menyelamatkan bacon saya
xiecs
2
Saya hanya melakukan hal yang sama. Saya membuka Global.asax dalam editor teks dan memperbaiki masalah namespace. Terima kasih
Kayvan Karim
6
Saya hanya melakukan hal yang sama. Hanya untuk menjelaskan kepada orang lain: Awalnya saya memiliki proyek uji yang disebut "MvcApplication1" yang dibuat secara otomatis. Saya kemudian melakukan penggantian global namespace "MvcApplication" ke "MyTest". Dalam Global.asax di notepad, saya perlu mengubah Inherits = "MyTest.MvcApplication"
PabloInNZ
Jika ada cara untuk memberi emas, saya akan
shanabus
53

Lakukan saja pengembangan manual pada solusi Anda.

Jika Anda menggunakan IIS lokal coba hapus pendaftaran situs web di manajer IIS dan kemudian buat ulang secara manual.

Peter Morris
sumber
Ini adalah pemenang bagi saya, saya telah menjatuhkan situs dari repo dan mengatur iis, tetapi tidak pernah melakukan pembangunan di IIS
Anthony Main
31

[Diekstraksi dari pertanyaan]

Jika Anda mendapatkan kesalahan ini: "Tidak dapat memuat tipe MvcApplication", lihat jalur Output proyek Anda dan pastikan sudah disetel ke 'bin \'. Masalahnya adalah bahwa AspNetCompiler tidak dapat menemukan file jika mereka tidak berada di lokasi default.

Efek samping lain dari mengubah folder output adalah bahwa Anda tidak akan dapat men-debug kode Anda dan muncul dengan pesan yang mengatakan bahwa info Assembly tidak dapat ditemukan.

Pelit
sumber
1
Ini agak aneh ketika biasanya dipisahkan antara konfigurasi build yang berbeda.
nicodemus13
Secara default dipisahkan, tetapi banyak orang mengubahnya ke satu folder sehingga rilis dan debug berada di lokasi yang sama untuk proyek yang berbeda yang mereferensikan output (installer, dll).
StingyJack
Saya ingin tahu apakah masalah ini hanya terjadi pada IIS Express. Bagaimanapun, alasan saya pikir itu karena itu hanya mengacaukan atas salah satu starter baru kami: aku berubah binke bin\Debugdan bin\Releasetetapi file lama masih berada di saya binfolder jadi saya tidak melihat masalah. Tentu saja, jika Anda melakukan checkout bersih dan membangun file-file ini tidak ada untuk Anda sehingga meledak.
Bart Baca
15

Saya memiliki masalah yang sama dan menyelesaikannya dengan langkah-langkah di bawah ini

  1. Buka properti proyek
  2. Pada tab "Bangun", setel jalur keluaran ke "bin \"
A_B
sumber
1
Terima kasih banyak untuk ini, itu memperbaiki masalah yang saya alami dengan breakpoints tidak pengaturan!
Chris
Itulah yang berhasil bagi saya. Saya menemukannya sendiri tetapi tetap terima kasih.
Alexandre
Sial! Ini menghemat sehari.
main ski
14

Ahh ini menyebalkan.

Mendapat kesalahan ini setelah pemadaman listrik dan saya kembali ke proyek saya.

Saya mencoba memulai kembali VS. Saya mencoba mengatur jalur output ke \ bin. Saya memeriksa spasi nama saya.

Tetapi yang berhasil bagi saya adalah membangun kembali solusi.

Bangun Kembali Solusi !!!

Pomster
sumber
13

Solusi saya: Karena saya yang menciptakan masalahnya! Saya telah mengubah namespace di Global.asax.cs

Anda juga perlu mengubah nilai atribut Inherits di Global.asax.

mkaj
sumber
3
Saya juga punya masalah ini. Saya berharap Visual Studio akan memperbaiki ruang nama di atribut bawaan di markup - serta kelas.
csharpforevermore
Sama disini. Saat mengganti nama namespace, pastikan Anda menggeser-alt-F10, atau klik kanan untuk mengganti nama dan itu akan memperbarui semua instance untuk Anda.
Rob
Ini bekerja untuk saya, tetapi sulit untuk menemukan tempat untuk mengimplementasikan solusi. Saya melakukan 'Temukan Semua' untuk mengakses file Global.asax karena ketika Anda mengklik dua kali pada Global.asax di editor Visual Studio, Anda mendapatkan file Global.asax.cs yang sebenarnya adalah kode di belakang file .asax. Perhatikan ekstensi .cs. Jadi: CTRL-F dan cari Global.asax (tanpa .cs) dan ubah warisan agar sesuai dengan namespace Anda.
GerardV
9

Periksa kode di balik informasi, yang disediakan di global.asax. Mereka harus menunjuk dengan benar ke kelas dalam kode di belakangnya.

contoh global.asax:

<%@ Application Codebehind="Global.asax.cs" Inherits="MyApplicationNamespace.MyMvcApplication" Language="C#" %>

kode sampel di belakang:

   namespace MyApplicationNamespace
    {
        public class MyMvcApplication : System.Web.HttpApplication
        {
            protected void Application_Start( )
            {
                AreaRegistration.RegisterAllAreas( );
                FilterConfig.RegisterGlobalFilters( GlobalFilters.Filters );
                RouteConfig.RegisterRoutes( RouteTable.Routes );
                BundleConfig.RegisterBundles( BundleTable.Bundles );
            }
        }
    }
Farshid Saberi
sumber
7
  1. Klik kanan pada proyek dalam solusi yang gagal.
  2. Bongkar Proyek
  3. Muat Ulang Proyek
  4. Bangun Proyek
  5. Membangun kembali Solusi
JoshYates1980
sumber
5

Ini juga dapat terjadi saat menjalankan proyek di studio visual jika IIS Express Anda memiliki / hosting proyek lama / berbeda menggunakan penugasan port yang sama.

Untuk memperbaikinya, Anda dapat mengubah penetapan port untuk proyek ini atau menutup IIS Express.

Pelit
sumber
5

Jika Anda hosting di IIS express dan Anda membuka proyek Anda di dua lokasi yang berbeda, maka Anda mungkin melihat kesalahan ini.

Solusinya adalah pergi ke Project/Properties/Web/Serversdan klik Create Virtual Directory.

Steve Dunn
sumber
4

Solusi bagi saya adalah klik kanan pada proyek Mvc, pilih properti dan klik Buat Direktori Virtual.

Sebuah kotak pesan muncul mengatakan bahwa proyek itu dipetakan ke folder yang salah (itu menunjukkan folder untuk proyek TFS yang berbeda . Itu memberi opsi untuk memetakannya kembali ke folder yang benar.

Will Newton
sumber
1
Terima kasih atas tipnya, penyebabnya bagi saya adalah saya baru-baru ini memindahkan tfs. Saya perlu menghapus peta folder solusi dan memetakannya lagi untuk membuat aplikasi berfungsi!
adhie
4

Saya sudah punya bin/di tab build saya. Saya mendapat global.asax dari salinan lain proyek, tetapi itu tidak berhasil.

Solusi yang akhirnya berhasil bagi saya adalah menghapus bin/folder dan membuat folder kosong baru dengan nama yang sama.

zaydev
sumber
1
Ini tidak memberikan jawaban untuk pertanyaan itu. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka - Anda selalu dapat mengomentari posting Anda sendiri, dan setelah Anda memiliki reputasi yang cukup, Anda akan dapat mengomentari posting apa pun .
JLRishe
@brasofilo Saya bisa saja membuat panggilan yang salah, tetapi mengingat kurangnya informasi dalam pertanyaan awal, sangat mungkin ini bukan perbaikan untuk masalah OP, dan jawaban ini cukup singkat sehingga dapat ditambahkan sebagai komentar. Di sisi lain, pertanyaan asli telah diposting sejak lama dan ada satu ton jawaban "ini yang berhasil bagi saya" di sini, jadi ini adalah panggilan yang sulit. Pertanyaan ini dan jawabannya mungkin memerlukan beberapa pembersihan.
JLRishe
@ JLRishe, well, yeah, ini berantakan Q&A. Jawaban ini bahkan mungkin merupakan duplikat dari yang kedua paling banyak dipilih, tapi saya tidak yakin. Saya akan menandai Q meminta kunci minimum 10rep.
brasofilo
4

Saya tahu ada banyak solusi untuk ini, tetapi saya pikir saya hanya akan menyebutkan apa yang memecahkannya untuk saya.

Konfigurasi saya disetel ke Debug. Mengubahnya menjadi Rilis telah membantu saya.

Amanda
sumber
2
Mengubahnya untuk melepaskan dan berfungsi ... mengubahnya kembali ke debug dan terus bekerja ... terima kasih.
Paul Zahra
3

Saya mendapatkan kesalahan ini karena saya menjalankan proyek meskipun ada beberapa kesalahan waktu kompilasi. Ini saya tidak perhatikan.

Gautam Jain
sumber
Tidak memperhatikan karena Daftar Kesalahan bleepity-bleep mengatakan itu SELAMAT !!!! Terima kasih.
CindyH
3

Hapus isi folder bin situs (gunakan file explorer untuk ini). Membangun kembali.

Malcolm Swaine
sumber
3

Saya telah jatuh ke dalam ini. Saya telah membaca dan menguji semua solusi yang mungkin diberikan sebelumnya. Memeriksa path build, build, rebuild, clean, restart IIS dan VS2015, instal ulang semua paket nuget, kompilasi satu per satu, dll, ...

Tiba-tiba saya ingat bahwa VS menyimpan beberapa file sementara ASP di folder sistem ... Saya pikir saya harus mencobanya, setelah semua, yang bisa menjadi lebih buruk. Jadi saya mengosongkan:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

Dan semuanya bekerja kembali ... Aneh bahwa masalah ini memiliki solusi yang sangat berbeda ...

junta
sumber
3

Saya telah melihat ini berkali-kali selama dekade terakhir dan baru saja memilikinya lagi. Ada banyak masalah yang menghasilkan kesalahan yang sama.

Salah satu penyebabnya adalah penggantian nama file. Jika Anda bekerja dengan file .cshtml, periksa semua ruang nama di dalam file tersebut dan di dalam file Views \ web.config. Untuk formulir web, ganti nama Default.aspx (file .cs dan desainer yang terkait secara otomatis diganti namanya). Codebehind berubah tetapi garis Inherits di markup tidak. Ubah secara manual. Periksa halaman perancang. Terkadang (VS2005-8?) Halaman desainer tidak mencerminkan perubahan dalam namespace. Belum melihat ini di tahun 2010+.

Masalah lain adalah ketika semuanya bekerja di VS atau di PC lokal Anda tetapi tidak ketika Anda menyebarkan. Ini bisa jadi karena lingkungan penyebaran tidak terstruktur sama. Misalnya, kesalahan terjadi jika Anda menempatkan kode Anda di direktori virtual di bawah folder aplikasi, tetapi itu tidak terjadi jika Anda membuat folder aplikasi baru dan menempatkan semua file Anda di sana. Saya tidak mengerti yang ini, karena saya sudah mengatur folder anak / virtual baru dengan izin yang sama (atau jadi saya pikir) dan (saya percaya) kumpulan aplikasi harus bekerja sama untuk semua yang ada di folder aplikasi yang diberikan.

Dalam kasus saya, saya juga punya folder bin dengan majelis yang diperbarui dari majelis lain di server IIS. Sekali lagi, memastikan bahwa ini dijalankan dalam folder aplikasi terpisah menghasilkan kesuksesan.

HTH

TonyG
sumber
2

Saya mendapatkan masalah ini setiap kali saya menyimpan file yang dikompilasi secara dinamis (ascx, aspx dll). Saya menunggu sekitar 8-10 detik lalu hilang. Sangat menyebalkan.

Saya pikir itu mungkin masalah IIS Express jadi saya mencoba di server dev bawaan dan saya masih menerimanya setelah menyimpan file. Saya menjalankan aplikasi MVC, saya juga menggunakan T4MVC, mungkin itu faktor ...

Sam
sumber
2

Saya memiliki kesalahan yang membuat frustrasi ini dalam lingkungan pengembangan di Visual studio, dan ternyata alasannya cukup bodoh. Singkatnya jika Anda memiliki lebih dari satu proyek web / situs dalam solusi: pastikan bahwa port yang Anda coba akses ke situs web sama dengan yang dikonfigurasi di Properti Proyek-> Web

Dalam kasus saya, kesalahan itu disebabkan karena saya menggunakan port yang berbeda untuk mengakses situs web (di browser) sementara proyek dalam solusi ditugaskan port lain. Untuk menjelaskan sedikit lagi, saya punya dua proyek situs web dalam solusi saya Website1 (ditugaskan port 8001 di ISS oleh Visual-Studio) dan Website2 (ditugaskan port 8101 di ISS oleh Visual-Studio). Jadi meskipun saya sedang membangun Website1, saya mencoba mengakses situs web menggunakan locahost: 8101.

Sekarang saya akhirnya menyadari masalahnya, saya melihat bahwa komentar @ StingyJack juga membahas masalah yang sama.

mmmMAC
sumber
2

Pastikan namespace di global.asax.cs Anda cocok dengan namespace webapp Anda

Solusi IndieTech
sumber
2

Saya memiliki kesalahan ini lagi dan tidak ada yang berhasil bagi saya. Aku harus menghapus node berikut dalam file Csproj: <VisualStudio>....</VisualStudio>. Reloaded VS dan berhasil.

FYI, VS mampu membuat ulang node dan kemudian saya membuat ulang situs web di IIS (melalui VS) dan bekerja dengan sempurna.

Semoga ini bisa membantu seseorang.

Rob
sumber
1

Pastikan Anda tidak perlu membuka proyek MVC seperti File-> Open Web Site, gunakan File-> Open Project .

Awk
sumber
1

Apa yang berhasil bagi saya adalah me-restart Visual Studio.

Saya mencoba membangun kembali secara manual, melakukan pembersihan dan membangun kembali, dan menghapus folder bin yang semuanya tidak berfungsi. Jalur keluaran saya sudah disetel ke bin \

Johnie Karr
sumber
Saya melakukan pembangunan kembali level-solusi tetapi saya perhatikan folder bin proyek saya kosong. Saya melakukan pembangunan hanya pada proyek dan tiba-tiba saya memiliki folder bin yang terisi. Saya meluncurkan proyek dan berhasil.
MrBoJangles
1

Jika Anda mengubah namespace pastikan untuk mengklik kanan dan refactor.

rocktheartsm4l
sumber
1

Ini bisa terjadi sangat sering jika Anda mengubah namespace Anda. Kembalikan nama namespace Anda, seperti dulu, dan itu akan membuatnya bekerja!

pengguna3576116
sumber
1

Dalam beberapa keadaan, proyek baru yang Anda buat tidak secara default ditetapkan untuk dibangun. Jika Anda mengklik kanan pada solusi Anda, pilih Properties, dan pilih Configuration Properties| Configurationsimpul di sebelah kiri dan pastikan proyek Anda memiliki tanda centang di bawah Buildkolom. Dalam keadaan normal saya menemukan ini terjadi secara default. Dalam keadaan lain (kebetulan saya memiliki solusi Web Api / Xamarin Android dan iOS / Mvc 5 yang agak rumit yang menunjukkan perilaku ini) tanda centang tidak ada.

Ini terkait dengan jawaban lain - jika perakitan projet web Anda tidak tersedia, Anda mendapatkan kesalahan ini. Tapi ini mungkin skenario umum, terutama karena Anda memang menyusun solusi Anda - proyek tidak dibangun.

Kirk Woll
sumber
1

Saya mendapat kesalahan ini karena kontrol versi saya telah diatur untuk mengabaikan folder bin saya . Sangat bodoh, tapi mungkin orang lain akan mendapat manfaat.

Brent Wagoner
sumber
1
Tidakkah Anda ingin mengabaikan folder bin, bersama dengan obj dan hal-hal lain yang dibangun dan bukan bagian dari kode sumber?
MrBoJangles
Biasanya ya. Tetapi di situs khusus ini, itu adalah satu-satunya cara untuk mendorong item ke server. Saya mungkin seharusnya membuat jawaban saya lebih umum.
Brent Wagoner
Saya benar-benar mendapatkan keadaan khusus seperti itu.
MrBoJangles
1

Saya mengalami masalah ini dan saya melihat di sana segala macam jawaban tetapi tidak ada yang diterima. Saya setelah sedikit menemukan bahwa hanya membangun situs web sebelum mencoba menjalankan menyelesaikan masalah saya.

webternals
sumber