33

방금 VS 2015로 전환했습니다. 4.52에 비해 실행되는 오래된 MVC 5 앱이 있습니다. VS 2013에서는 완벽하게 괜찮습니다.

VS 2015에서 나는 내 밑에서 빨간 불 덩어리가 나옵니다.@Html.TextBoxFor()다음과 같은 오류가 표시됩니다.

'표현식 < > 유형은   참조. 어셈블리 'System.Core에 대한 참조를 추가해야합니다.   버전 = 4.0.0.0, 문화 = 중립, PublicKeyToken = b77a5c561934e089 '.

프로젝트가 제대로 빌드되고 실행됩니다. 그러나 VS 2013에서 발생한 적이없는 IntelliSense 오류가 걱정됩니다. 좋습니다. 위의 오류에서 권장하는대로 System.Core에 대한 참조를 추가하려고합니다. 그러면이 오류가 발생합니다.

'System.Core'에 대한 참조를 추가 할 수 없습니다. 이 구성 요소는   빌드 시스템이 이미 자동으로 참조합니다.

다시 말하지만, VS 2013에서는 정상입니다.


  • MVC 4 툴링은 Visual Studio 2015에 포함되어 있지 않기 때문에 MVC 4를 사용하는 경우이 문제가 발생할 수 있습니다. MVC 5 및 MVC 6 툴링 만 포함되어 있습니다. packages.config를 열고 Microsoft.AspNet.Mvc에 대한 항목으로 스크롤하여 MVC 5를 사용하고 있는지 확인할 수 있습니까? 나열된 버전이 "5"로 시작하면 이는 MVC 5를 사용하고 있음을 의미합니다. - Mohit Srivastava
  • @ 모토 - Microsoft.AspNet.Mvc 버전 5.2.2를 사용하고 있는데 Microsoft.Asp.Net.Razor 버전 3.2.2를 사용하고 있습니다. - Tom Baxter
  • 나는 똑같은 문제가 있지만 Windows 7 컴퓨터에서만, Windows 10에서는 문제가 없습니다. 실행중인 Windows 버전은 무엇입니까? - Flores
  • @Flores : Win 7 Pro, 64를 사용하고 있습니다. NuGet의 모든 것을 업데이트했지만 여전히 빨간 불 덩어리가 있습니다. - Tom Baxter
  • @ 톰 벡스터 솔루션을 찾았습니까? - Igoris Azanovas

6 답변


36

나는 똑같은 문제가 있었지만 그 말은 대답을 찾았습니다.

web.config에 다음 참조를 추가해야했습니다 (여는 system.web 태그 내부에 추가).

<compilation debug="true" targetFramework="4.5">
    <assemblies>
                <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
                <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
                <add assembly="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
                <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />   
                <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
                <add assembly="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
                <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
                <add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
                <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            </assemblies>
        </compilation>

또한 대상 프레임 워크를 4.5.1에서 4.5로 변경했습니다.

p.s Visual Studio를 변경 한 다음 닫았다가 다시 엽니 다.


  • 다음을 계속 한 후에도 여전히 변경 사항이 표시되지 않는 경우 그냥 스튜디오를 다시 설정하십시오. 그 이유는 모르지만 저에게는 효과적입니다. - nguyenhoai890
  • 이것은 나를 위해 일한, 나는 OP와 같은 문제가있었습니다. 이 폴더가 View 폴더의 Web.config에있는 경우 문제가되지 않으므로 참고 용으로 Web.config에 있어야합니다. VS2015를 초기화해도 아무 것도 할 수 없었습니다. - Josh
  • VS2015의 경우 IDE를 닫았다가 다시 시작하면 문제가 해결되었습니다. - Jgreenst
  • 뷰 폴더의 web.config 파일에 System.Core 어셈블리 만 추가 한 다음 클린 솔루션을 수행하고 Visual Studio를 닫았다가 다시 열면 오류가 제거됩니다. - Michael12345
  • 나는 이미 이들 중 몇 가지를 가지고 있었지만, System.Core가 부족했습니다. VS를 추가하고 VS를 재시작하는 것이 트릭을 만들었습니다. - Lars-Erik

13

나는 이들 중 대부분을 시험해 보았습니다. 결국 나를 위해 일한 것은 프로젝트를 언로 드하고 csproj 파일을 편집 한 후 다음을 추가하는 것이 었습니다.

<Reference Include="System.Core" />


  • 좋은. 나를 위해, 겉으로보기에 무작위 적색의 구불 구불 한 지옥은 단위 테스트 프로젝트에 있었다. 나는 이걸 필요로했다.System.Runtime. - Todd Menier
  • vb.net의 경우 : & lt; Import Include = & quot; System.Core & quot; / & gt; - John Swaringen

1

솔루션을 삭제하고 소스 컨트롤에서 솔루션을 가져 오면 .vs 폴더를 제거하고 "devenv.exe / resetuserdata"가 내 문제를 해결하지 못해 VS2015를 시작했지만 MEF 구성 요소 캐시를 제거하면 이벤트가 해결되지 않았습니다.VS 2015에서 작동하지 않는 면도기 인텔리 센스답변.


  • 나는 내가 찾은 거의 모든 것을 시도했지만, 저장소에서의 복제는 새로운 사본이 작업을 공유했음을 나타냈다. - eldi

1

4.5.2에서 4.6.1로 업데이트 할 때부터 내 견해에서 정확한 오류가 발생했습니다. 솔루션을 빌드하고 실행하는 것은 아무 문제가 없었습니다. 여기에 이미 게시 된 모든 솔루션을 시도한 후에 (또한 작업에 대한 인텔리 센스 확인, 캐시 지우기, bin 및 obj 폴더 제거, 프로젝트로드 및 다시로드) system.core는 이미 올바르게 작성되었으며이 참조를 Web.config는 아무 것도하지 않았습니다.) 나는 파기를했고 결국 오류가 발생한 프로젝트에서 Web.config 파일에 두 개의 컴파일 디버그 대상 프레임 워크와 다른 httpRuntime 대상 프레임 워크가 있다는 것을 알았습니다. 이렇게 :

<system.web>
    <authentication mode="None" />
    <compilation debug="true" targetFramework="4.6.1" />
    <compilation debug="true" targetFramework="4.5.2" />
    <httpRuntime targetFramework="4.5.1" />
    ...

해결책은 추가 컴파일 디버그 타겟 프레임 워크를 제거하고 모든 타겟 프레임 워크가 내가 원하는 것임을 확인하여이를 해결하는 것이 었습니다 (4.6.1)

<system.web>
    <authentication mode="None" />
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime targetFramework="4.6.1" />
    ...

다른 것이 없다면 이것을 다시 확인하십시오. 희망은 누군가를 돕는다!


0

다른 스택 오버플로 스레드에서 이러한 및 다른 솔루션을 시도했다. 아무도 일하지 않았다.

무엇이 효과가 있었는지는 Visual Studio의 시스템 설정, 응용 프로그램 & amp; 기능 하위 메뉴 (VS를 클릭하고 "복구"를 선택). 몇 시간이 걸렸지 만 문제는 사라졌습니다.


0

제 경우에는 태그를 변경 한 후에 작동합니다.<ProjectGuid>...에서.csproj~에 파일<ProjectGuid>{6C651A5E-8DDA-4680-804E-F9596743CBE8}</ProjectGuid>및 솔루션을 다시 엽니 다. 위에 게시 된 모든 솔루션이 저에게 효과적이지 않았습니다.

연결된 질문


관련된 질문

최근 질문