컴파일러에 'System' 유형이 필요했기 때문에 'dynamic'을 사용하는 클래스 또는 멤버를 정의할 수 없습니다.런타임.컴파일러 서비스.동적 속성'
운영하려고 합니다.GitHub에서 가져온 로컬 컴퓨터의 NET MVC 응용 프로그램.
Visual Studio에서 실행을 누르면 모든 것이 준수되고 다음 오류와 함께 새 브라우저 창이 열립니다.
CS1980: 컴파일러에 'System' 유형이 필요했기 때문에 'dynamic'을 사용하는 클래스 또는 멤버를 정의할 수 없습니다.런타임.컴파일러 서비스.동적 속성'
같은 창에 있는 컴파일러 섹션에 다음 오류가 표시됩니다.
구글에서 확인해보니 동일한 오류인 것 같습니다.
이 사람은 동적 유형을 직접 사용하고 있었습니다. 반면에 저는 동적 유형을 사용하지 않습니다. 이는 에 의해 자동으로 생성됩니다.NET의 컴파일러, 그리고 저는 역학을 지원해야 하는 .net 4.5를 사용하고 있습니다.
저는 동일한 솔루션(모든 시스템 변경)을 적용하려고 했습니다.핵심 참조는 4.0)이지만 문제는 모든 버전이 이미 4.0이라는 것입니다.
제가 이걸 어떻게 해결해야 할지 아십니까?
마이그레이션하려는 프로젝트에서 비슷한 오류가 발생했습니다.프로젝트 프레임워크의 대상을 한두 버전 뒤로 다시 지정하고 오류가 발생하지 않는 대상 버전을 찾으면 원래 문제가 있었던 버전으로 다시 지정합니다.
4.6.2를 대상으로 한 웹 사이트 프로젝트에서 일부 오래된 라이브러리를 참조하다가 다시 4.5.1로 대상을 변경하여 오류를 해결했습니다.즉시 4.6.2로 다시 대상을 변경하여 다시 오류가 발생하지 않았습니다.
저도 같은 문제가 있었지만, 여기 있는 어떤 대답도 그것을 해결하지 못했지만, 저를 올바른 방향으로 이끌었습니다.업데이트를 하지 않은 것 같습니다.내 컴퓨터의 NET 버전을 최신 버전으로.설치 후 제안된 대로 대상 프레임워크를 롤백하고, 새로운 프레임워크의 대상을 변경하고, 다음과 같은 추가 작업을 수행했습니다.
패키지 관리자에서 다음을 실행하여 모든 패키지를 다시 설치했습니다.
update-package -reinstall
또한 제 프로젝트를 4.5에서 작동하는 프로젝트와 비교하여 다음 작업을 수행했습니다.
- 프로젝트 파일을 열고 "BCL" 관련 요소를 모두 제거했습니다.
- 프로젝트를 위해 NuGet 패키지 관리자에서 모든 "BCL" 패키지 제거(4.5+로 이동할 필요가 없음...)?)
- 이전 했습니다.
System.Net.Http
- 에는 " " " " "라는 메시지가 표시되어야 합니다(web.config " - "라는 메시지가 표시되어야 ).oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"
). - VS를 다시 시작해야 합니다.
- 솔루션 재구성.
- 이제 오류가 사라졌습니다. ;)
다른 오류를 해결하기 위해 수행한 또 다른 작업은 여기에 있는 모든 파일을 삭제하여 구성 요소 캐시를 지우는 것이었습니다.
C:\Users\{USERNAME}\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache\
[웅성] 이 모든 일로 하루 종일 허비했어요.절대 있어서는 안 될 무의미한 문제들을 해결해준 내 인생의 하루를 더 훔쳐준 MS에게 감사합니다.업그레이드할 때마다 항상 놀라운 놀라움과 함께 빨간 청어를 고치는 멋진 게임을 얻습니다.이전 프로젝트를 업그레이드하는 경우 이러한 충돌을 감지하는 것이 나쁘지 않을까요?문제가 발생했을 때 더 나은 오류 추적이 가능할까요?그렇게 어려울 것 같지는 않습니다.어쩌면 AsmSpy와 같은 것이라도 VS에 내장된 고급 제품일까요? [/rant]
본적있에서 .VS 2019
문제가 있는 파일(내 경우 _Layout.cshtml)을 제외하고 다시 포함시켰더니 문제가 해결되었습니다.
'기존' MVC 앱을 사용하여 VS2015.3으로 업데이트한 지 며칠 만에 갑자기 이 오류가 발생했습니다(새롭지 않음).NET Core / vNext 앱).
이 오류는 완전한 오류일 수 있습니다.
확인:
- 다른 오류는 전혀 없습니다.
- 출력 창에 '출력' 창에 표시되지 않는 오류가 있는지 확인했습니다.
- 충돌하는 참조가 없는지 확인합니다.
저의 경우, 저는 오류를 일으키는 타자기 오류가 있었고 어떤 이유에서인지 이 이상한 '레드 헤링' 동적 오류도 유발했습니다.
내 해결책은 안으로 들어가는 것이었습니다..csproj
파일을 작성하고 유형 스크립트 도구 버전을 1.8로 업데이트합니다(프로젝트를 언로드하고 수동으로 편집할 수 없음).제가 말씀드린 것처럼 오류와 관련이 없지만, 다른 사람이 이와 같은 문제를 일으킬 수 있기 때문에 구체적으로 언급합니다.
1.7은 typescript module system에 대해 '없음'을 인정하지 않은 반면 1.8은 수락하여 오류가 발생한 것 같습니다.
에 참조 System.Dynamic.Runtime
저를 위해 해줬어요.
답변으로 작성하는 것이 망설여지지만, 저에게는 .cshtml 파일에 오류가 나타났습니다.페이지를 닫고 다시 작성했더니 오류가 사라졌습니다.항상 간단한 것들을 먼저 시도하는 것이 가장 좋습니다.
동일한 오류가 발생했습니다. 데이터베이스 세트의 사용되지 않은 테이블이 2개밖에 없어서 삭제해야 했습니다.자동 생성된 코드 작업에서 수동으로 변경했는데 삭제 후에 작동한 이유가 궁금합니다.
따라서 이러한 불일치는 이 오류를 발생시킬 수도 있습니다.
제 해결책은 Views 폴더 아래 web.config에 있는 MVC 버전을 수정하는 것이었습니다.예를 들어 프로젝트에서 MVC 어셈블리 버전 5.2.2.0을 참조했지만 Views/web.config 파일에서는 버전 5.2.4.0이었습니다(이미지 참조).
몇 가지 다른 답변을 시도했지만 실패했습니다. 하지만 전반적인 합의는 캐시된 빌드 아티팩트나 컴파일러 상태 같은 문제가 있다는 것입니다.제가 성공한 것은 다음과 같습니다.
- 문제 .cshtml 파일을 삭제합니다. watch 오류가 사라집니다.
- 소스 컨트롤을 열고 삭제 내용을 되돌립니다.
이 오류는 사이트 코어의 버전이 다르기 때문에 발생합니다.웹.MVC.솔루션 참조 폴더(프로젝트 이름->참조->사이트 코어)의 Dll.Web.Mvc->우클릭 후 속성 확인) 및 Sitecore 버전.웹.MVC.웹의 DLL입니다.보기 폴더에서 구성합니다.
이 오류를 해결하려면 Sitecore 버전을 확인해야 합니다.웹.MVC.DLL이 두 폴더에서 동일합니다.
고맙습니다.
저의 경우 "update-package-reinstall" 명령줄을 Package Manager Controller에서 실행하기로 했습니다.
_Layout.cshtml에 문제가 있었습니다.위의 어떤 해결책도 저에게 도움이 되지 않았습니다.나는 이 프로젝트에 VS2017을 사용하고 있는데, 업그레이드를 하고 같은 메시지를 받았습니다.
저는 한 댓글에 두 줄을 댓글로 달았습니다 @* *@
저의 해결책은 각 행에 대해 별도로 의견을 제시하는 것이었습니다.정말 불가사의하군요!
이 일로 몇 시간을 허비했습니다.
언급URL : https://stackoverflow.com/questions/31761424/cannot-define-a-class-or-member-that-utilizes-dynamic-because-the-compiler-req
'IT' 카테고리의 다른 글
브라우저 크기 조정 시 jQuery UI 대화 상자를 자동으로 중앙에 배치하는 방법은 무엇입니까? (0) | 2023.08.16 |
---|---|
팬텀 JS 동기식 AJAX 요청: NETWORK_ERR: XMLHttp 요청 예외 101 (0) | 2023.08.16 |
Python - 목록을 함수 매개 변수로 사용 (0) | 2023.08.16 |
두 날짜 사이의 모든 달을 나열하는 방법 (0) | 2023.08.16 |
Sun JSTL taglib 선언이 실패하고 "태그 라이브러리 설명자를 찾을 수 없습니다"가 표시됨 (0) | 2023.08.16 |