오류 :«MvcApplication 유형을로드 할 수 없습니다»


240

오류가 발생합니다

MvcApplication 유형을로드 할 수 없습니다

웹 사이트를 운영하려고 할 때

수정하는 방법?


35
빌드 서버에서 언젠가이 오류가 발생했습니다. 수동 재구성을 수행하면 문제가 해결되었습니다.
Zack

1
출력 경로는 빌드 탭의 프로젝트 속성에서 설정됩니다
silasdavis

8
global.asax 파일을 삭제하고 새 파일을 추가하면 괜찮습니다.
DotNetGeek

4
빌드를위한 활성 구성에서 새 프로젝트가 선택되지 않은 것으로 나타났습니다.
JGeerWM

4
최근에 프로젝트를 추가했거나 최근에 게시 구성을 변경 한 경우 (예 : AnyCPU에서 x64로 전환 한 경우) 프로젝트를 실행할 때 빌드되지 않았을 수 있습니다. 빌드-> 구성 관리자로 이동하여 빌드 열에 확인란이 선택되어 있는지 확인하십시오. 방금이 문제가 발생했습니다. 응용 프로그램을 실행할 때 중단 점이 명확한 원임을 알 수 있습니다. 이것이 32 비트를 선호하는 프로세서 아키텍처에서 .net 4.5.1의 기본 빌드의 결과라고 생각합니다. x64를 확인한 경우에만 문제가 발생 함
David Bridge

답변:


115

멍청한 것처럼 들리지만 모든 것을 시도했지만 작동하지 않고 마침내 VS2012를 다시 시작하여 다시 작동하는지 확인했습니다.


1
LMFAO, 여기에 언급 된 모든 것을 시도한 후에도 저를 위해 일했지만 작동하지 않았습니다! 감사합니다 +1!
Yustme

여기에서도 같은 문제입니다. 병합 후 오류가 나타 났으며 VS2012가 다시 시작될 때까지 사라지지 않았습니다.
StuartQ 2016 년

1
나에게 일어난 일은 프로젝트를 컴파일하지 않은 Visual Studio의 두 번째 인스턴스에서 포트를 사용했기 때문입니다.
Clay Lenhart

나를 위해 일했습니다. 무슨 덤프.
PAWAN RAJ Shakya

5 년 후 VS2017이 여전히 해결책입니다. : /
Sagiv bg

105

나에게 수정 사항은 빌드 탭에서 출력 경로를 변경하는 것이 었습니다. 출력 경로를로 변경하고 bin\오류가 사라졌습니다.

또 다른 수정은 잘못된 시작 프로젝트 세트가 있다는 것입니다.


8
이것은 우리의 문제이기도합니다. 그것은 이전에 디버그 \ 86 \ 빈 같은 것을 설정했다
t3rse

4
하아! 이 문제로이 기사를 읽은 것은 2 년 만에 두 번째입니다. 처음에 가장 많이 대답 한 것은 이번이 두 번째입니다.
Ben Lesh

1
감사! 이것도 나에게 물렸다. 경고를 지우도록 플랫폼을 변경했으며 출력 경로를 알지 못하고 변경되었습니다.
camainc

6
이것이 제게 맞는 답이었습니다 ... 왜 Visual Stupido가 이런 식으로 행동하는지에 대한 아이디어가 있습니까?
andreapier

1
그렇습니다. 'bin'으로 변경하면 모든 것이 예상대로 작동합니다. @ andreapier : 예, VS2012 도이 바보 같은 행동을하는 것 같습니다. 누군가가 최대한 빨리 고쳐! :)
이제 이름을 지어야하는 사람.

82

나는 동일한 오류가 발생하고 여기에 언급 된 모든 것을 수행했지만 아무것도 효과가 없었습니다. 전 이름이 다른 이전 버전의 프로젝트에서 global.asax.cs의 소스 코드를 복사 한 것으로 나타났습니다. 그래서 namespace Test해야했다 namespace Test.WebUI. 물론 바보 같은 실수이며 이것을 작성하는 것이 조금 당황합니다! 그러나 다른 사람의 비슷한 오류로 인해이 사소한 측면도 확인할 수 있기를 바랍니다.


고마워, Vipul 나는 방금 같은 일을했고 그 결과 많은 일을 잃었다 고 생각했습니다. 네임 스페이스 이름 만 변경하면 베이컨이 절약됩니다
xiecs

2
나는 방금 같은 일을했다. 텍스트 편집기에서 Global.asax를 열고 네임 스페이스 문제를 해결했습니다. 감사합니다
Kayvan Karim

6
나는 방금 같은 일을했다. 다른 사람을 위해 정교화하기 위해 : 원래는 "MvcApplication1"이라는 테스트 프로젝트가 자동 생성되었습니다. 그런 다음 네임 스페이스 "MvcApplication"을 "MyTest"로 전역으로 바꿨습니다. 메모장의 Global.asax에서 Inherits = "MyTest.MvcApplication"으로 변경해야했습니다
PabloInNZ

금을 줄 방법이 있다면,
shanabus

53

솔루션을 수동으로 빌드하십시오.

로컬 IIS를 사용하는 경우 IIS 관리자에서 웹 사이트 등록을 삭제 한 다음 수동으로 다시 작성하십시오.


이것은 나에게 승자였습니다. 리포지토리에서 사이트를 삭제하고 iis를 설정했지만 IIS에서 빌드를 한 적이 없습니다.
Anthony Main

31

[질문에서 발췌]

"MvcApplication 유형을로드 할 수 없습니다"라는 오류가 표시되면 프로젝트의 출력 경로를보고 'bin \'으로 설정되어 있는지 확인하십시오. 문제는 AspNetCompiler가 파일이 기본 위치에 있지 않으면 파일을 찾을 수 없다는 것입니다.

출력 폴더 변경의 또 다른 부작용은 코드를 디버깅 할 수 없으며 어셈블리 정보를 찾을 수 없다는 메시지가 표시된다는 것입니다.


1
일반적으로 다른 빌드 구성으로 분리되어 있으면 조금 이상하게 보입니다.
nicodemus13

기본적으로 그것은 분리되어 있지만 많은 사람들이 이것을 단일 폴더로 변경하여 릴리스 및 디버그가 출력 (설치자 등)을 참조하는 다른 프로젝트의 동일한 위치에 있도록합니다.
StingyJack

이 문제가 IIS Express에만 해당되는지 궁금합니다. 그냥 우리의 새로운 선발 투수 중 하나에 나사 있기 때문에 어쨌든, 나는 그것을 알아 낸 이유는 다음과 같습니다 나는 변경 거라고 binbin\Debug하고 bin\Release있지만, 이전 파일 내에서 여전히 있었다 bin내가 어떤 문제를 보지 못했다, 그래서 폴더에 있습니다. 물론, 당신이 깔끔한 체크 아웃을하고이 파일들을 빌드한다면 당신을 위해 존재하지 않기 때문에 그것은 파열됩니다.
바트 읽기

15

나는 같은 문제가 있었고 아래 단계로 해결했습니다.

  1. 프로젝트 속성으로 이동
  2. "빌드"탭에서 출력 경로를 "bin \"으로 설정하십시오.

1
이 점에 대해 대단히 감사합니다. 중단 점이 설정되지 않은 문제를 해결했습니다.
Chris

그것이 나를 위해 일한 것입니다. 나는 그것을 스스로 발견했지만 어쨌든 감사합니다.
Alexandre

이런 세상에! 이것은 하루를 절약합니다.
ske

14

아 귀찮았 어.

전원 차단 후이 오류가 발생하여 프로젝트로 돌아 왔습니다.

VS를 다시 시작했습니다. 출력 경로를 \ bin으로 설정하려고했습니다. 네임 스페이스를 확인했습니다.

그러나 나를 위해 일한 것은 솔루션을 재구성하는 것이 었습니다.

솔루션 재 구축 !!!


13

내 해결책 : 문제가 생겼기 때문에! Global.asax.cs에서 네임 스페이스를 변경했습니다.

Global.asax에서 상속 속성 값도 변경해야합니다.


3
나도이 문제가 있었다. Visual Studio가 클래스뿐만 아니라 마크 업의 상속 속성에서 네임 스페이스를 리팩터링하기를 바랍니다.
csharpforevermore

여기도 마찬가지입니다. 네임 스페이스의 이름을 바꿀 때 Shift-Alt-F10을 변경하거나 마우스 오른쪽 단추를 클릭하여 이름을 바꾸면 모든 인스턴스가 업데이트됩니다.
Rob

이것은 나를 위해 일했지만 솔루션을 구현할 위치를 찾기가 어려웠습니다. Visual Studio 편집기에서 Global.asax를 두 번 클릭하면 실제로 .asax 파일 뒤의 코드 인 Global.asax.cs 파일이 생성되므로 Global.asax 파일에 액세스하기 위해 '모두 찾기'를 수행했습니다. .cs 확장자를 참고하십시오. CTRL-F를 사용하여 Global.asax (.cs없이)를 검색하고 네임 스페이스와 일치하도록 상속을 변경하십시오.
GerardV

9

global.asax에 제공된 코드 숨김 정보를 확인하십시오. 코드 뒤에있는 클래스를 올바르게 가리켜 야합니다.

global.asax 샘플 :

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

샘플 코드 뒤 :

   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 );
            }
        }
    }

7
  1. 실패한 솔루션 내에서 프로젝트를 마우스 오른쪽 단추로 클릭하십시오 .
  2. 프로젝트 언로드
  3. 프로젝트 새로 고침
  4. 프로젝트 구축
  5. 솔루션 재 구축

5

IIS Express에서 동일한 포트 할당을 사용하여 이전 / 다른 프로젝트를 호스팅하거나 호스팅하는 경우 Visual Studio에서 프로젝트를 실행하는 동안 발생할 수도 있습니다.

이 문제를 해결하기 위해이 프로젝트의 포트 할당을 변경하거나 IIS Express를 닫을 수 있습니다.


5

IIS Express에서 호스팅하고 있고 두 개의 다른 위치에서 프로젝트를 열면이 오류가 표시 될 수 있습니다.

해결책은로 이동하여 Project/Properties/Web/Servers클릭하십시오 Create Virtual Directory.


4

나를위한 해결책은 Mvc 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 가상 디렉토리 만들기를 클릭하는 것이 었습니다.

프로젝트가 잘못된 폴더에 매핑되었다는 메시지 상자가 나타납니다 ( 다른 TFS 프로젝트 의 폴더가 표시됨) . 올바른 폴더에 다시 매핑하는 옵션이 제공되었습니다.


1
팁 주셔서 감사합니다, 나를위한 원인은 최근에 tfs를 재배치했기 때문입니다. 앱을 작동시키기 위해 솔루션 폴더를 매핑 해제하고 다시 매핑해야했습니다!
adhie

4

이미 bin/빌드 탭에있었습니다. 프로젝트의 다른 사본에서 global.asax를 얻었지만 해결되지 않았습니다.

마침내 나를 위해 일한 해결책은 bin/폴더 를 제거 하고 동일한 이름으로 새 빈 폴더를 만드는 것입니다.


1
이것은 질문에 대한 답변을 제공하지 않습니다. 작성자의 의견을 비판하거나 설명을 요청하려면 게시물 아래에 댓글을 남겨주세요. 언제든지 자신의 게시물 에 댓글 수 있으며 평판 이 충분 하면 게시물댓글 수 있습니다 .
JLRishe

@ brasofilo 잘못된 전화를 걸 수는 있지만 원래 질문에 정보가 심각하지 않으면 이것이 OP의 문제에 대한 해결책이 아니며 아마도이 답변이 짧아서 의견으로 추가 될 수 있습니다. 반면에, 원래 질문은 오래 전에 게시되었으며 여기에 "이것이 저에게 효과가 있습니다"라는 답변이 많이 있으므로 어려운 전화입니다. 이 질문과 답변에는 정리가 필요할 수 있습니다.
JLRishe

@JLRishe, 예, Q & A의 혼란입니다. 이 답변은 두 번째로 많이 찬성 된 내용 일 수도 있지만 확실하지 않습니다. Q에 최소 10rep의 잠금을 요청하는 플래그를 지정합니다.
brasofilo

4

나는 이미 이것에 대한 많은 해결책이 있다는 것을 알고 있지만, 그것을 해결 한 것을 언급 할 것이라고 생각했다.

구성이 디버그로 설정되었습니다. 그것을 Release로 변경하면 나에게 속임수가되었습니다.


2
릴리스로 변경하고 작동했습니다 ... 다시 디버그로 변경하고 계속 작동했습니다 ... 감사합니다.
Paul Zahra

3

컴파일 시간 오류에도 불구하고 프로젝트를 실행했기 때문에이 오류가 발생했습니다. 이것은 눈치 채지 못했습니다.


bleepity-bleep 오류 목록에 "HAPPY"라고 표시되어 통지하지 않았습니다! 감사합니다.
CindyH

3

사이트 bin 폴더의 내용을 삭제하십시오 (파일 탐색기 사용). 재건하십시오.


3

나는 이것에 빠졌다. 이전에 제공된 모든 가능한 솔루션을 읽고 테스트했습니다. 빌드 경로 확인, 빌드, 재 빌드, 정리, IIS 및 VS2015 다시 시작, 모든 nuget 패키지 재설치, 하나씩 컴파일 등 ...

VS는 ASP 임시 파일을 시스템 폴더에 보관한다는 사실을 갑자기 기억했습니다 ... 결국 더 나쁘지 않을 수도 있습니다. 그래서 나는 비웠다 :

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

그리고 모든 것이 다시 작동하고 있습니다 ...이 문제에는 가능한 다른 해결책이 있습니다 ...


3

나는 지난 10 년 동안 이것을 여러 번 보았고 그것을 다시 가지고 있었다. 동일한 오류가 발생하는 많은 문제가 있습니다.

한 가지 원인은 파일의 이름을 바꾸는 것입니다. .cshtml 파일로 작업하는 경우 해당 파일과 Views \ web.config 파일 내의 모든 네임 스페이스를 확인하십시오. 웹 양식의 경우 Default.aspx의 이름을 바꿉니다 (관련 .cs 및 디자이너 파일의 이름이 자동으로 바)). 코드 숨김은 변경되지만 마크 업의 상속 라인은 변경되지 않습니다. 수동으로 변경하십시오. 디자이너 페이지를 다시 확인하십시오. 때때로 (VS2005-8?) 디자이너 페이지에 네임 스페이스의 변경 사항이 반영되지 않습니다. 2010 년에 이것을 보지 못했습니다.

또 다른 문제는 VS 또는 로컬 PC에서 모두 작동하지만 배포 할 때는 작동하지 않는 것입니다. 배포 환경이 동일하게 구성되지 않았기 때문일 수 있습니다. 예를 들어, 코드를 응용 프로그램 폴더 아래의 가상 디렉터리에 배치하면 오류가 발생하지만 새 응용 프로그램 폴더를 만들어 모든 파일을 저장하면 발생하지 않습니다. 새로운 하위 / 가상 폴더가 동일한 권한으로 설정되어 있으므로 응용 프로그램 풀이 주어진 응용 프로그램 폴더의 모든 항목에 대해 동일하게 작동해야한다고 생각 하므로이 항목을 이해하지 못합니다.

필자의 경우 IIS 서버의 다른 어셈블리에서 업데이트 된 어셈블리가있는 bin 폴더도 있습니다. 다시 말하지만, 이들은 별도의 응용 프로그램 폴더에서 실행되어 성공했습니다.

HTH


2

동적으로 컴파일되는 파일 (ascx, aspx 등)을 저장할 때 마다이 문제가 발생합니다. 나는 약 8-10 초 기다렸다가 사라집니다. 정말 성가신 일입니다.

아마도 IIS Express 문제라고 생각하여 내장 된 dev 서버에서 시도했지만 파일을 저장 한 후에도 여전히 수신하고 있습니다. 나는 MVC 앱을 실행 중이며 T4MVC도 사용하고 있습니다.


2

Visual Studio의 개발 환경 에서이 좌절스러운 오류가 있었고 그 이유가 상당히 멍청한 것으로 나타났습니다. 즉, 솔루션에 하나 이상의 웹 프로젝트 / 사이트가있는 경우 웹 사이트에 액세스하려는 포트가 프로젝트 속성-> 웹에 구성된 포트와 동일한 지 확인하십시오.

내 경우에는 솔루션의 프로젝트에 다른 포트가 할당 된 동안 다른 포트를 사용하여 웹 사이트 (브라우저에서)에 액세스했기 때문에 오류가 발생했습니다. 좀 더 설명하기 위해 내 솔루션 Website1 (Visual-Studio의 ISS에서 포트 8001로 할당)과 Website2 (Visual-Studio의 ISS에서 포트 8101로 할당)에 두 개의 웹 사이트 프로젝트가있었습니다. 따라서 Website1을 구축하고 있었지만 locahost : 8101을 사용하여 웹 사이트에 액세스하려고했습니다.

이제 문제를 마침내 깨달았으므로 @StingyJack의 의견도 비슷한 문제를 해결합니다.



2

나는이 오류가 다시 있었고 위의 어느 것도 나를 위해 일하지 않았다. .csproj 파일에서 다음 노드를 제거해야했습니다 <VisualStudio>....</VisualStudio>. VS를 다시로드하고 작동했습니다.

참고로 VS는 노드를 다시 만든 다음 IIS를 통해 웹 사이트를 VS를 통해 다시 만들었으며 완벽하게 작동했습니다.

잘하면 이것은 누군가를 도울 것입니다.


1

File-> Open Web Site 와 같은 MVC 프로젝트를 열 필요가 없는지 확인하십시오 . 대신 File-> Open Project 를 사용 하십시오 .


1

나를 위해 일한 것은 Visual Studio를 다시 시작하는 것이 었습니다.

수동으로 재 구축, 정리 및 재 구축 및 bin 폴더 삭제가 모두 작동하지 않았습니다. 출력 경로가 이미 bin \으로 설정되었습니다


솔루션 수준의 재 구축을 수행했지만 프로젝트의 bin 폴더가 비어있는 것을 알았습니다. 나는 단지 프로젝트를 빌드하고 갑자기 채워진 bin 폴더를 가지고있었습니다. 나는 프로젝트를 시작했고 효과가 있었다.
MrBoJangles

1

네임 스페이스를 변경 한 경우 마우스 오른쪽 단추를 클릭하고 리팩터링하십시오.


1

네임 스페이스를 변경하면 매우 자주 발생할 수 있습니다. 예전처럼 네임 스페이스의 이름을 반환하면 제대로 작동합니다!


1

경우에 따라 새 프로젝트는 기본적으로 빌드하도록 설정되지 않습니다. 솔루션을 마우스 오른쪽 버튼으로 클릭하면을 Properties선택하고 Configuration Properties| Configuration왼쪽에 노드를 표시하고 프로젝트의 Build열 아래에 확인 표시가 있는지 확인하십시오 . 정상적인 상황에서는 이것이 기본적으로 발생하는 것으로 나타났습니다. 다른 상황에서는 (이 동작을 나타내는 다소 복잡한 Web Api / Xamarin Android 및 iOS / Mvc 5 솔루션이 발생합니다) 확인 표시가 없습니다.

이것은 다른 답변과 관련이 있습니다. 웹 프로젝트의 조립품을 사용할 수없는 경우이 오류가 발생합니다. 그러나 이것은 일반적인 시나리오 일 수 있습니다. 특히 솔루션을 실제로 컴파일하기 때문에 프로젝트가 빌드되지 않습니다.


1

내 버전 컨트롤이 내 bin 폴더 를 무시하도록 설정되어 있기 때문에이 오류가 발생했습니다 . 매우 어리석은 사람이지만 다른 사람이 도움이 될 수 있습니다.


1
bin 폴더와 obj 및 소스 코드의 일부가 아닌 빌드 및 기타 것들과 함께 무시하고 싶지 않습니까?
MrBoJangles

보통 은요 그러나이 특정 사이트에서는 항목을 서버로 푸시하는 유일한 방법이었습니다. 내 대답을 좀 더 일반적인 것으로 만들어야했을 것입니다.
브렌트

나는 그런 특별한 상황을 완전히 얻습니다.
MrBoJangles

1

나는이 문제에 부딪 쳤고 모든 종류의 답변이 있지만 아무것도 받아들이지 않았습니다. 나는 웹 사이트를 구축하기 전에 웹 사이트를 구축하는 것이 내 문제를 해결한다는 것을 조금 알게되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.