2017-10-07 16 views
2

.NET Framework에서 로더는 현재 폴더와 GAC에서 종속성을 검색합니다. .NET 코어 어셈블리 검색 순서

  1. 그러나 .NET 코어의

    때문에 .NET 핵심 어셈블리 로더는 현재 폴더 또는 글로벌 nuget 캐시 (결과 someuser/.nuget/패키지 폴더)에 어셈블리를 검색 않으며, 더 GAC가 없다?

  2. 또한 System.Runtime.dll과 같은 모든 기본 라이브러리가있는 Mac (C : \ Program Files \ dotnet \ shared)에서/usr/local/share/dotnet/shared 폴더를 찾았습니다. System.Collections.dll.
    어셈블리 로더도 보이나요?

  3. 또한이 기본 라이브러리는 글로벌 누겟 캐시에서도 중복된다는 것을 알게되었습니다.
    왜?

답변

4

디렉토리를 확인하실 수 있습니다

. 그러나, 그들은 포함 할 수있다

  • C : \ 프로그램 파일 \ DOTNET의 \ 저장소 \ 64 \ netcoreapp2.0 (또는 컴퓨터에 해당하는 경로)
  • C :. \ 사용자 \ {사용자} \ nuget \ 패키지
  • C : \ 프로그램 파일 \이 그냥 패키지 (예 : NuGet)에 대한 것을 DOTNET \ SDK \ NuGetFallbackFolder

참고. 기타 조립 리졸버는 코드에서 직접 조립 해결을 사용하는 경우 다음과 같이 해상도에 사용되는 경로를 지정할 수 있다는 ... 참조 및 응용 프로그램 어셈블리에 대한

참고 존재 자세한 내용은

ICompilationAssemblyResolver assemblyResolver = new CompositeCompilationAssemblyResolver 
         (new ICompilationAssemblyResolver[] 
{ 
    new AppBaseCompilationAssemblyResolver(basePath),  //e.g. project path 
    new ReferenceAssemblyPathResolver(defaultReferenceAssembliesPath, fallbackSearchPaths), 
    new PackageCompilationAssemblyResolver(nugetPackageDirectory) //e.g. C:\Users\\{user}\\.nuget\packages 

}); 

코드 내의 어셈블리 해상도 관리에 대한 자세한 내용은이 문서 참조 - Resolving Assemblies in .NET Core

0

.Net 코어는 크로스 플랫폼 인 Nuget 패키지를 기반으로합니다. NET 코어 응용 프로그램은 NuGet에 의존하여 의존성을 해결하므로 개발이 간단합니다. 당신은 당신의 환경에 크게 좌우 될 것입니다 링크에게 PackageCompilationAssemblyResolver에서 사용 Is there any GAC equivalent for .NET Core?