ASP.NET MVC 4.5.2 프레임 워크에서.
타이핑 후
@Html.LabelFor()
or
@Html.EditorFor()
보기에
오류가 발생합니다.'Expression <>'형식은 참조되지 않은 어셈블리에 정의되어 있습니다. 'System.Core, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'어셈블리에 대한 참조를 추가해야합니다.
어셈블리 참조 System.Core.dll, 버전 4.0.0.0, 런타임 버전 v4.0.30319를 추가했습니다. 또한 web.config에서 했어요.
나도 너와 같은 문제로 달렸다. 문제는 Razor 뷰 (.cshtml)에 액세스 할 수 없다는 것이므로 누락 된 어셈블리 참조가 있음을 알리는 오류가 발생했습니다.System.Web.Mvc
, 프로젝트 참조에도 불구하고. 조사한 결과 설치 된 NuGet 버전은 5.2.3이고 프로젝트는 5.2.0이었습니다. 해결책은 MVC 버전을 다운 그레이드하는 것입니다.
모든 대화 상자를 확인하고 갈 준비가되었습니다.
나는 아직도 당신이이 문제점을 가지고 있건 없건간에 그러나 나는 동일한 문제점을 또한 가지고 있는지 확실하지 않다.
나는 여기서 해결책을 찾을 수 있었다.
https://stackoverflow.com/questions/6496223/compilation-error-in-net-4-0-web-config-linq-not-found
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
이게 도움이 되길 바란다..
이 오류는 Visual Studio에서 Razor 뷰에 대한 Intellisense에 전원을 공급하기 위해 System.Web.Mvc 어셈블리를 찾을 수 없음을 의미합니다. 다음 중 하나 또는 둘 모두를 수정해야 할 수 있습니다.
[루트] /Web.config :
<system.web>
<compilation targetFramework="4.6" />
프로젝트 속성 :
[views 폴더] /web.config :
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
MVC 어셈블리 참조 등록 정보 :
나는 이들 중 대부분을 시험해 보았습니다. 결국 나를 위해 일한 것은 프로젝트를 언로 드하고 csproj 파일을 편집 한 후 다음을 추가하는 것이 었습니다.
<Reference Include="System.Core" />
https://stackoverflow.com/a/38371981/2335660
내 경우 Resharper가 켜져있을 때만이 메시지가 표시되었습니다. Resharper 캐시를 지우고 VS를 다시 시작한 후 Resharper를 껐다가 다시 켭니다. 메시지가 사라졌습니다.
방금 똑같은 정확한 문제가 있었지만 해결책 중 어느 것도 문제를 해결하지 못했습니다. 이걸 내web.config
이내에System.Web
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
나는 그 중 일부를 바꿀 때 그것을 제거했다.config
약.
빌드 액션 cshtml 파일이 'Content'로 설정되어 있는지 확인하십시오.
나는 ReSharper를 사용하고 템플릿을 호출 할 때 어떤 이유로 생성 된 파일의 기본값이 'None'이라는 것을 알았습니다.
누락 된 어셈블리와 동일한 문제가 있었는데 VS2017 빌드가 Bin 폴더에 올바르게 복사되지 않았습니다. 이 단계는 다음과 같이 도움이되었습니다.
- 웹 프로젝트의 References 노드로 이동합니다.
- System.Core에 대한 참조 찾기
- VS 속성 창을 엽니 다.
- 속성 창에서 로컬 복사 : False를 True로 변경하십시오.
이 의견에서 :CS0012 : '##### 모든 유형 #####'유형이 참조되지 않은 조립품에 정의되어 있습니다.
나를 위해, 프로젝트 메뉴에서 "Enable C # 6.0 / VB 14"옵션이있었습니다. 이 옵션을 선택하면 트릭을 만들었습니다. 이전에이 게시물에서 제안한대로 web.config를 수정하고 Visual Studio를 다시 시작했습니다.
나는 똑같은 문제에 직면했다. 근본적으로 문제는 다른 버전의System.Web.Mvc
. 그래서 당신이 열어야 할 가장 좋은 물건입니다.Tools > Nuget Package Manager > Manage Nuget Packages for Solution
. 당신은 아마 볼 수 있습니다.System.Web.Mvc
~에Cosolidate
탭. 업그레이드 또는 다운 그레이드가 가장 좋습니다. 현재 .Net 프레임 워크를 사용하는 경우.Net 4.6.1
, 모두 업그레이드해야합니다.System.Web.Mvc
버전5.2.4.0
. 행운을 빕니다!
Web.config에서 다음을 변경해야했습니다.
<system.web>
<compilation debug="true" targetFramework="4.7">
에
<system.web>
<httpRuntime targetFramework="4.7" />
<compilation debug="true" targetFramework="4.7">
이것은 내 견해 중 하나에서 일어났습니다. 다른 모든 것은 괜찮 았습니다. 나는 다음과 같이했다 :
다시 시작하는 Visual Studio가 나를 위해 일했습니다.
나도이 문제가 있었다.
작고 보기 흉한 사람targetFramework="4.5.2"
에targetFramwork="4.5"
web.config 파일에서이를 해결했습니다.
CSHTML 파일이 하나 또는 두 개 밖에 없으면 파일이 손상된 것입니다.
나는이 일을 숨겨진 유니 코드 문자가있는 손상된 파일로 처리했습니다. 문서의 모든 텍스트를 새로운 메모장 인스턴스로 복사 해보십시오. 원본 파일의 내용을 지우고 저장하십시오. 파일 길이가 0보다 크면 잘못된 것입니다.
파일을 삭제하고 메모장 인스턴스를 이전 버전에 저장하십시오. 모든 오류가 나를 위해 갔다.
나는 이것을 내 해결책으로 몇 번이나 가지고왔다. 뭘 일으키는 지 모르지만Resharper라고 의심해라.거대한 덩어리를 심연으로 삼키기 시작하면 망쳐 버린다.
Resharper와 사랑 / 증오 관계가있는 유일한 사람입니까?
솔루션에 .NET Framework의 모든 버전을 대상으로하지 않는 프로젝트가 여러 개있는 경우 발생할 수 있습니다. 예를 들어 웹 응용 프로그램 프로젝트가 .NET 4.5를 대상으로하고 .NET 4.5.2를 대상으로하는 솔루션의 다른 프로젝트에 대한 어셈블리 참조가있는 경우입니다. 이 문제를 해결하려면 프로젝트를 모두 동일한 버전의 .NET Framework를 대상으로 변경해야합니다.
모든 답변이 작동하지 않는다면이 답변을 사용하십시오. 나는 똑같은 문제에 직면했다! 사실 migrations 폴더의 configuration.cs 파일이 누락되었거나 삭제되었습니다. migrations 폴더를 삭제하고 데이터베이스에서 migrations 테이블을 삭제했습니다. 패키지 관리자 콘솔 (PM)의 다음 명령은 다음과 같습니다.
Enable-Migrations -Force
Add-Migration Initial
update-database
이 프로세스는 configuration.cs 파일을 다시 만들었고 모든 것이 완벽하게 작동했습니다!
프로젝트 속성을 확인하여 대상 프레임 워크를 가져옵니다. 내 프로젝트에서 내 대상 프레임 워크를 일치 시켜서이 문제를 해결했습니다 .NET Framework 4.6.1 MVC 5.2.3이 적절한 솔루션이었습니다. NuGet에서 MVC 버전을 얻었습니다.
Web.config (루트에 있음)에 다음을 추가합니다. 나는 이전에 제안한 것들을 절대적으로 시도했지만, 아래에서 발견 할 때까지 아무런 효과가 없었다. 그것이 다른 누군가를위한 시간을 절약하길 바랍니다.
targetFramework = "4.6.1"을 사용하지만 다른 경우 사용하는 버전으로 변경하십시오.
<system.web>
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6.1" />
</system.web>
필자의 경우 해결책은 Web.Config 내부에서 ConnectionString을 이동하는 것이 었습니다. 이 문은 AppSettings 섹션 뒤에 있어야합니다.
삭제 중[projectName] .csproj.user프로젝트 디렉토리의 파일이 나를 도왔습니다.