首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET核心组件搜索顺序

.NET核心组件搜索顺序
EN

Stack Overflow用户
提问于 2017-10-07 11:11:27
回答 2查看 3.1K关注 0票数 6

在.NET框架中,加载程序在当前文件夹中搜索依赖项,然后在GAC中搜索依赖项。

  1. 但是在.NET核心中没有GAC,所以.NET核心程序集加载器也只搜索当前文件夹中的程序集还是全局nuget缓存中的程序集(某某用户/.nuget/packages文件夹)?
  2. 此外,我还在我的Mac(C:\Program \dotnet\shared in Windows)中找到了一个/usr/local/share/dotnet/shared文件夹,所有的基本库都位于其中,比如System.Runtime.dll、System.Collections.dll。 装配式装载机也在看那里吗?
  3. 此外,我还发现这些基础库在全局nuget缓存中也是复制的。 为什么?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-07 11:27:04

PackageCompilationAssemblyResolver使用的目录在很大程度上取决于您的环境。然而,它们可能包括:

  • C:\Program \dotnet\store\x64\netcoreapp2.0(或计算机的等效路径)
  • C:\Users{user}.nuget\packages
  • C:\Program \dotnet\sdk\NuGetFallbackFolder

请注意,这只是针对包(即NuGet)。存在其他用于引用和应用程序集的程序集解析器。

请注意,如果您在代码中直接使用程序集解析器,则可以指定用于解析的路径如下:

代码语言:javascript
复制
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

});

有关管理代码中程序集的解析的详细信息,请参阅本文- 解析.NET核中的装配

票数 8
EN

Stack Overflow用户

发布于 2017-10-07 11:16:12

.Net核心基于跨平台的Nuget软件包。NET应用程序严重依赖NuGet来解决它们的依赖关系,这简化了开发。

您可以检查链接.NET核心是否有等效的GAC?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46619499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档