파일 또는 어셈블리 시스템을 로드할 수 없습니다.런타임, 버전=4.1.2.0
일부 NuGet 패키지(대부분 ASPNET Identity 관련)를 추가한 후 갑자기 다음 오류가 표시되기 시작했습니다.
FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
있습니다.Net Framework 4.7.1이 대상입니다.NuGet 패키지 시스템을 설치해 보았습니다.런타임 4.3.0은 도움이 되지 않았습니다.web.config 파일에는 다음과 같은 참조가 있습니다.
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
</dependentAssembly>
시스템이 없습니다.bin 폴더의 Runtime.dll.
아이디어 있어요?
Visual Studio 2017 15.5.5를 사용합니다.
업데이트:
.csproj 파일의 PackageReference 항목을 사용하기 때문에 packages.config 문제가 아닙니다.
일부 종속성이 로드되지 않은 것 같습니다.
어셈블리 바인딩이 잘못되었을 수 있습니다.
app.config 또는 web.config AssemblyBinding 섹션을 삭제합니다.그런 다음 Package Manager 창에서 BindingRedirect를 실행합니다.
Get-Project –All | Add-BindingRedirect
선택 사항:모든 프로젝트의 프레임워크 버전을 업그레이드하는 경우 모든 프로젝트에 대해 모든 Nuget 패키지를 다시 설치해야 합니다.이를 쉽게 수행하려면 다음 패키지 관리자 스크립트를 사용합니다.
Get-Project –All | % { Get-Package -ProjectName $_.ProjectName | % { update-package $_.Id -reinstall -ProjectName $_.ProjectName -ignoreDependencies } }
그런 다음 위의 바인딩 리디렉션 코드를 실행합니다.
저는 최근에 net462에서 net471로 프로젝트를 업그레이드했는데, 제 경우 문제는 net462 버전에 의해 요구되었지만 net471을 심각하게 혼란스럽게 만드는 몇 가지 어셈블리 리디렉션이었습니다.
해결책은 web.config의 모든 어셈블리 리디렉션 항목을 제거하고 Visual Studio가 다시 계산하도록 하는 것이었습니다. 이 항목은 web.config에 다시 추가하기 위해 클릭할 수 있는 경고로 나타납니다.
제 ASP.NET 프로젝트는 VS 15.8.4에서 이미 net471에 있었습니다.기존 NuGet 패키지를 최신 버전으로 업데이트하려고 하면 IIS Express에서 프로젝트를 시작할 때 이 오류가 발생합니다.
잘못된 이미지 형식 예외:파일 또는 어셈블리 '시스템'을 로드할 수 없습니다.런타임' 또는 해당 종속성 중 하나입니다.
프로젝트의 web.config 파일을 수정하여 이 문제를 해결할 수 있었습니다.
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Primitives" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.3.0" />
</dependentAssembly>
두 시스템 모두에 대한 bindingRedirect 행을 삭제합니다.런타임 종속성으로 인해 프로젝트에서 이 문제가 해결되어 web.config에서 이 문제가 발생했습니다.
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Primitives" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
</dependentAssembly>
시스템이 없습니다.bin 폴더의 Runtime.dll.
패키지 시스템.런타임이 참조되지만 설치해야 합니다.
Visual Studio의 메뉴에서 Tool > NuGet Package Manager > Manage NuGet Packages for Solution...으로 이동합니다.
활성화된 NuGet - Solution 창에서 Installed(설치됨) 탭으로 이동하고 System(시스템)으로 이동합니다.마이크로소프트 런타임.클릭 한 번으로 선택하고 프로젝트에 대한 버전이 있는지 옆 창을 확인합니다.그렇지 않은 경우 프로젝트를 선택하고 설치를 클릭합니다.
솔루션 구축.
저는 이 문제를 가지고 있었고 그 문제의 진상을 밝히는 데 시간이 좀 걸렸습니다.다른 사용자가 나와 유사한 설정을 사용하여 이 문제가 발생할 수 있습니다.
운영하고 있었습니다.IIS(WCF 서비스)의 NET Framework v4.8 앱입니다.실수로 복사하기 전까지는 잘 작동했습니다.NET Core 3.1 DLL을 bin 디렉토리에 저장합니다.IIS는 분명히 호스트를 시도했습니다.NET Core DLL 및 런타임이 없습니다.DLL을 삭제한 후에는 운이 좋았습니다.이것이 다른 누군가에게 도움이 되기를 바랍니다 :)
web.config에 다음을 추가하여 이 문제를 해결했습니다.
<compilation debug="true">
<assemblies>
<add assembly="System.Runtime, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</assemblies>
</compilation>
특정 어셈블리 버전은 다를 수 있습니다.
언급URL : https://stackoverflow.com/questions/48503930/could-not-load-file-or-assembly-system-runtime-version-4-1-2-0
'programing' 카테고리의 다른 글
SQL*Plus에서 create 문 중간에 빈 줄이 있는 뷰/테이블을 생성하려면 어떻게 해야 합니까? (0) | 2023.08.19 |
---|---|
Javascript/jQuery의 배열에서 여러 요소 제거 (0) | 2023.08.19 |
Restsharp를 사용하여 파일을 다운로드하는 방법 (0) | 2023.08.19 |
STATICFILES_DIR, STATIC_ROOT 및 MEDIA_ROOT의 차이점 (0) | 2023.08.19 |
AJAX 응답을 기다리는 동안 이미지를 로드하려면 어떻게 해야 합니까? (0) | 2023.08.14 |