programing

사전 정의된 유형 'System'입니다.Object'가 정의되어 있지 않거나 .net 4.6을 Import하지 않았습니다.

showcode 2023. 3. 31. 23:03
반응형

사전 정의된 유형 'System'입니다.Object'가 정의되어 있지 않거나 .net 4.6을 Import하지 않았습니다.

모바일 앱도 연결할 수 있는 웹 API를 만들기 위해 MVC 5와 .net 4.6을 사용하고 있습니다.

프로젝트를 빌드할 때마다 이미 존재하는 참조를 추가해야 한다는 오류와 프로젝트의 모든 유형이 '존재하지 않는다'는 오류가 수백 건씩 발생합니다.이러한 오류의 예: (제목의 오류는 제외)

에러 리스트

내가 시도한 것:

  • 시스템에 대한 참조 추가.nuGet을 통한 런타임(이 질문의 권장 사항)
  • project.json 파일의 프레임워크에서 aspnetcore50을 삭제했습니다.(또 다른 권장 사항인 이 질문)
  • VS2015를 재기동하고 있습니다.
  • nuGet 패키지 매니저를 통해 프로젝트의 모든 패키지를 최신 버전으로 업그레이드합니다.
  • 실제로 솔루션 탐색기의 참조 노드에서 참조를 볼 수 있는지 확인합니다.

업데이트: - 마이project.json파일은 다음과 같습니다.(칼스의 답변을 바탕으로 수정한 후).에러 리스트는 10으로 낮아졌지만, 지금까지와 같은 에러입니다).

{
  "commands": {
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
  },
  "dependencies": {
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta5",
    "Microsoft.AspNet.Mvc": "6.0.0-beta5",
    "System.Runtime": "4.0.20-beta-23019"
  },
  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ],
  "frameworks": {
    "dnx451": {
      "frameworkAssemblies": {
        "System.Data": "4.0.0.0",
        "System.Data.DataSetExtensions": "4.0.0.0",
        "System.Data.Linq": "4.0.0.0"
      }
    }
  },
  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ],
  "version": "1.0.0-*",
  "webroot": "wwwroot"
}

하다.bin ★★★★★★★★★★★★★★★★★」obj재구축이 가능합니다.

이것 때문에 많은 시간을 낭비했다.비주얼 스튜디오를 닫습니다..vs 폴더를 삭제하고 Visual Studio를 재시작합니다.모든 게 잘 될 거예요.

일반적으로 브랜치를 변경하거나 브랜치를 Marge할 때 이 문제가 발생합니다.

dotnet restore명령어를 실행하면 문제가 해결되었습니다.

저도 같은 문제가 있었어요.나는 이 문제를 해결하기 위해 이틀을 보냈다.Visual Studio 재설치, Visual Studio 캐시 클리어, Visual Studio 제거 또는 Windows 10 설치를 다시 시도했지만 성공하지 못했습니다. =>.

나에게 효과가 있는 다음 단계를 시도해 볼 수 있습니다.

  1. Visual Studio 닫기
  2. packages 폴더 내
  3. Visual Studio 열기 및 솔루션 재구축

행운을 빌어요

방금 Visual Studio "관리자로서"를 열었는데 작동했어요!

하여 삭제하려고 .binobj폴더를 설정했지만, 그것은 효과가 없었습니다.

하고 '문제 발생 프로젝트'를 하였습니다.Load Entire Dependency Tree!!으!!!!!!!!!!! !!!!

전체 종속성 트리 로드

제 경우, 아직 dnx 베타 버전에 대해 빌드하도록 설정된 프로젝트가 있었습니다.다른 프로젝트에서 사용하던 버전에 맞게 빌드하도록 변경함으로써 수정되었습니다.

만, 의 「이러한 것」을하고 있는 것이 .System.Data.*을 위해 짐을 싣다.dnx451 수 것은 도 없다.dnxcore50어어에에에 상상?? ??? ???니면 프프 ?성??? ????? , 것을 사용하는 는, 「 」System.Data.*이런 조립품을 포장할 때 필요한 물건들이에요

#if DNX451
// Do some DNX451 specific stuff here
#endif

그 반대도 마찬가지고요.

#if DNXCORE50
// Do some DNXCORE50 specific stuff here
#endif

아직 , 저는 하겠습니다.dnxcore50프레임워크 목록에서 삭제하면 오류는 사라질 것입니다.

제 경우, 제가 수행한 절차는 다음과 같습니다.

  1. bin과 obj를 제거하고 재구축했습니다.(실패)
  2. 프로젝트를 언로드했습니다.(이 결과 "Assets file project.assets.json을 찾을 수 없습니다.NuGet 패키지 restore 실행')
  3. dotnet restoreVisual Studio 2017 >> [ Tools ]> [ NuGet Package Manager ]> [ Package Manager Console ] > [ Package Manager Console ] 。
  4. 솔루션 재구축(문제 해결)

고치는데 거의 이틀이 걸렸다.VS 언인스톨\재인스톨을 여러 번 시도했지만 동작하지 않았다.

결국 내게 효과가 있었던 건...

VS 설치 복구 실행.오류로 인해 모든 MS .NET Core SDK - 2.1xxx 인스턴스를 수동으로 제거해야 했습니다.

VS 설치 복구 실행.오류는 없습니다.bin과 obj분리하여 리빌드합니다.

dotnet restore패키지 매니저 콘솔의 명령어 및 문제 해결.

저 같은 경우는 좀 달라요.먼저 시스템을 확인합니다.런타임 참조가 프로젝트에 추가되는지 여부를 확인합니다.프로젝트에 추가되는 경우는, 다음의 순서에 따라주세요.

  1. 프로젝트에서 참조를 열고 시스템을 선택합니다.런타임 어셈블리
  2. [ System ](시스템)을 클릭합니다.실행 시 속성을 선택합니다.
  3. SpecificVersion 값을 False에서 True로 변경합니다.

주의: 제 경우 Visual Studio 2019 및 Project Framework Version - 4.6.2를 사용하고 있습니다.

VS2019 솔루션 파일이 One drive 폴더 아래에 위치하여 한 드라이브 외부에 있는 다른 폴더로 이동하면 이 문제가 해결됩니다.

저도 Visual Studio 2019를 사용하여 Google/Git에서 솔루션을 로드하는 문제를 받았습니다.솔루션을 로드하고 있을 때 패키지 매니저의 [Output]탭에 google-api-dotnet-client\NuPkgs\Support라는 폴더가 존재하지 않는다고 표시되었습니다.NuPkgs 폴더와 Support 폴더를 NuPckgs에 추가하고 Visual Studio를 재시작하면 모든 프로젝트가 복원됩니다.이것으로 문제가 해결되었다.

(패키지 관리자에서) 출력 탭을 확인하여 프로젝트가 성공적으로 복원되는지 확인하십시오.

내 경우, 오류는 내 솔루션의 클래스 라이브러리 프로젝트와 관련이 있습니다.

그 라이브러리를 재구축하면 모든 오류가 사라집니다.

심각도 코드 설명 프로젝트 파일 줄 억제 상태 오류 CS0518 미리 정의된 유형 '시스템'입니다.Object'는 정의되거나 Import된 Fabrikafa가 아닙니다.CC.Library C:_Repos\Fabrikafa.CC\Fabrikafa.CC. 라이브러리\View Models\UserViewModel.cs 5 액티브

이것을 읽으면, 이 에러의 원인을 찾을 수 있습니다.

https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs0518

내 이론은 기억과 관련이 있다.VS 2019의 여러 복사본을 연 후 RAM 사용률이 85~90%에 달합니다. 1~2개만 열어두면 그렇게 되지 않을 것 같습니다.아무것도 하지 않고 갑자기 모든 시스템과 시스템을 사용할 수 있습니다.IO 참조가 빨간색으로 흐트러져 인텔리센스가 인식하지 못합니다(프로젝트는 정상적으로 구축되지만).Visual Studio를 종료했다가 다시 시작하는 것만이 작동합니다.동작하지 않는 것을 모두 시험해 보았다.프로젝트 언로드/재로드 솔루션 닫기/재열기 bin/obj 폴더 지우기 NuGet 패키지 캐시 지우기(NuGet 패키지가 아니므로 이 패키지가 왜 이렇게 되는지 확실하지 않음)

저는 새로운 프로젝트를 솔루션에 추가했을 때 문제가 발생했습니다.솔루션을 재구축했더니 오류가 사라졌어요.

이러한 오류는 보기(.cshtml) 파일이 열려 있을 때만 나타나고 파일이 닫히거나 탭으로 표시되었을 때 사라집니까?

MVC5는 모든 보기에 대해 가정할 .cshtml 면도기 파일에 대한 전역 참조를 정의합니다.여기서 체크합니다.project -> Views -> web.config (프로젝트 -> web.config 파일과 혼동하지 마십시오).시스템.web.webPages.razor 섹션은 참조를 정의합니다.

<configuration>
  ...
  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc,
        Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>
  ...

그러나 이 프로젝트 -> 뷰 -> web.config 파일이 없는 경우 이는 설계상 또는 필수가 아닐 수 있습니다.이러한 참조를 정의하는 대규모 최상위 사이트에 도입하면 실행 시 오류가 지워지는 프로젝트가 있습니다..cshtml 파일을 무시하고 닫거나 .cshtml 이외의 파일을 선택하는 방법을 배웠습니다.

최상위 뷰 -> web.config 파일의 복사본을 가져와 솔루션에 추가할 수 있습니다.파일이 공개되면 무시될 것이라고 생각되지만 이 동작에 대해서는 잘 모르겠습니다.

내 상황:를 사용하여 VS 2019를 개발하고 있습니다.NET Framework 4.5.클래스 라이브러리를 추가하고 사전 정의된 유형 'System'을 받았습니다.Object'가 생성된 클래스에 정의되지 않은 메시지입니다.

대처:

  • bin 폴더와 obj 폴더를 삭제하고 리빌드.변화가 없다.
  • 패키지 매니저 콘솔에서 dotnet restore 실행.할 일이 없다며 실행이 완료되었습니다.변화가 없다.

솔루션:프로젝트를 언로드하고 종속성을 다시 로드했습니다.다시 만들었을 때 오류가 사라졌어요.

도움이 되는 경우:

못찾았다는 것이었습니다.System.Index 그 것

에러 메세지는 별로 도움이 되지 않았지만, 그 후 깨달았습니다.array[^1]어느 정도 검색한 결과, 어레이의 끝에서 인덱스를 작성하는 멋진 방법이 판명되었습니다.

바꾸다array[^1]로로 합니다.array[array.Length-1]성공했어.

가장 우아한 해결책은 아니지만 아마도 도움이 될 것이다

프로젝트 빌드 순서를 보고 첫 번째 프로젝트만 직접 만들었습니다.일단 구축되면 완전한 솔루션을 구축할 수 있었고 오류는 사라졌습니다.

에 는, VBNET Web 의 를 확인해 .global.asax다음과 같은 글로벌 레퍼런스를 사용합니다.

<%@ Application Language="VB" %>
<%@ Import Namespace="System.IO.Compression" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Globalization" %>
<%@ Import Namespace="System.Threading" %>
<script RunAt="server">
</script>

언급URL : https://stackoverflow.com/questions/31224206/predefined-type-system-object-is-not-defined-or-imported-net-4-6

반응형