Programing

코드 변경없이 "컴파일러 필수 멤버 누락"오류가 여러 번 발생 함

lottogame 2020. 10. 11. 08:59
반응형

코드 변경없이 "컴파일러 필수 멤버 누락"오류가 여러 번 발생 함


오늘 내가 실행하는 C # MVC 사이트에 몇 가지 변경 사항을 배포 한 후 다시 몇 가지 수정을 수행 한 후이 오류가 발생했습니다.

누락 된 컴파일러 필수 멤버 System.Runtime.CompilerServices.ExtensionAttribute..ctor

오류는 파일, 줄 또는 참조 할 열을 제공하지 않고 프로젝트 만 제공하므로 약간 모호합니다 (분명히 설명이 아닙니다). 또한 총 20 회 오류를 발생시킵니다. 배포 한 시점 (당시에는 완전히 작동 함)과 지금 사이에 코드를 세 번만 변경했습니다. 변경 사항을 되돌 렸지만 여전히 똑같은 오류가 발생하여 의미가 없습니다.

나는 이 사람들의 솔루션과 일부 Mono 프로젝트 오류에 대한 몇 가지 참조를 제외하고 SO 또는 Google 에서이 오류에 대한 많은 정보를 찾지 못했습니다 (Mono를 사용하지 않습니다). 위의 솔루션은 컴파일러가 참조를 해결할 수 있도록 클래스 정의를 추가해야합니다. 이 시점까지 할 필요가 없었고 내 코드가 흐트러 질 것이기 때문에 특별히하고 싶지는 않습니다.

누군가이 전에 이것을 경험했는지 궁금합니다. 미리 감사드립니다!


이 오류는 일반적으로 프로젝트가 .NET 2.0에 대해 컴파일 중이거나 올바른 버전의 System.Core.dll을 참조하지 않음을 의미합니다.

거의 중복되는 질문 은 C #에서 확장 메서드를 사용할 때 오류를 참조하세요 .


제 경우에는 프로젝트가 참조하지 않았기 때문 Microsoft.CSharp입니다. 해당 어셈블리에 대한 참조를 추가하면 제대로 컴파일되었습니다.


다른 사람이 이것을 경험했는지는 모르지만 dynamic유형을 활용하는 코드를 추가 하고 VS2013에서 TypeScript 응용 프로그램으로 시작된 프로젝트에 WebAPI를 통합 한 후 갑자기이 오류 가 발생합니다. Microsoft.CSharp에 대한 참조를 추가하기 만하면 문제가 해결되었습니다.

이것이 다른 사람에게 도움이되기를 바랍니다.


오늘도 이런 상황에 부딪 혔습니다. 제 경우에는 .NET 4.0 응용 프로그램에서 Newton.Json.Net dll v3.5를 참조했습니다. 이 라이브러리를 사용하지 않았기 때문에 참조에서 제거하면 더 이상 컴파일러 오류가 발생하지 않습니다.

문제 해결됨!!!


프로젝트 어딘가에이 코드를 작성하면 문제가 해결 될 수 있습니다. 그것은 나를 위해 작동합니다

namespace System.Runtime.CompilerServices
{
    public class ExtensionAttribute : Attribute { }
}

실제 오류는 오류를 일으키는 2.0 어셈블리에 다음 코드가 포함되어 있다는 사실에서 비롯됩니다.

namespace System.Runtime.CompilerServices
{
    public class ExtensionAttribute : Attribute { }
}

위의 코드를 사용하면 .NET 2.0 어셈블리에서 확장 메서드를 사용할 수 있습니다 ( .NET 2.0에서 확장 메서드 사용? 참조 ). mscorlib.dll (4.0)이 동일한 네임 스페이스에 동일한 클래스를 포함하므로 .NET 4.0을 대상으로하고 2.0 어셈블리 (위 코드 포함)를 참조하면 컴파일러를 혼동합니다.

나는 이것을 고쳤다

  • 4.0을 대상으로하는 특성없이 원래 2.0 어셈블리를 다시 컴파일하여
  • 어셈블리를 제거하여 (분명히)
  • 컴파일하는 대상에 세 번째 확장 속성을 추가하여 (참조 된 정의를 무시하는 것 같습니다)

.NET 4.0 프로젝트에서 참조 된 NLog.dll 2.0도이 문제를 일으킬 수 있습니다.


올바른 솔루션이 없지만 데이터 포인트를 추가하겠습니다.

제 경우에는 GoogleSearchAPINet20을 참조하여 오류가 발생했습니다.

다음은 발생합니다.

  • 빌드하는 솔루션을 닫습니다.
  • 솔루션을 다시 엽니 다. 여전히 빌드
  • 변경하고 빌드를 시도하자마자 19 개의 "Missing compiler required member ..."오류가 발생합니다.
  • GoogleSearchAPINet20에 대한 참조를 제거합니다.
  • GoogleSearchAPINet20에 대한 참조를 다시 추가합니다.
  • 솔루션을 구축합니다. 오류없이 빌드됩니다.
  • 이제 Visual Studio가 열려있는 한 코드를 변경하고, 솔루션으로 다른 작업을 올바르게 빌드하거나 수행 할 수 있습니다.
  • Visual Studio를 닫습니다.
  • 1 단계부터 반복

내 솔루션에서 System.Core.dll을 전혀 참조하지 않으며 대상 프레임 워크는 .NET 4입니다.

나는이 시점에서 약간 짜증이 난다.


.NET 4.0에 대해 비동기 작업을 사용하려고 할 때이 오류가 발생했습니다. 대상 프레임 워크를 4.5.2로 업데이트하면 문제가 해결되었습니다.


winforms 프로젝트에 몇 가지 비동기 메서드를 추가 한 후 동일한 예외 집합이 발생했습니다. .NET 버전을 4에서 4.5로 올려야했습니다.


나를 위해 .net4.0 프로젝트에서 비동기 작업이 대기하는 비동기 메서드를 추가하면 문제가 발생합니다!

이전 버전의 .NET-Framework 4.5에서는 다음 패키지를 설치해야합니다.

Install-package Microsoft.Bcl.Async –pre

또는

Install-Package Microsoft.CompilerServices.AsyncTargetingPack

Nuget 또는 Nuget 에 대한 자세한 정보

참고 URL : https://stackoverflow.com/questions/6182644/missing-compiler-required-member-error-being-thrown-multiple-times-with-almost

반응형