【发布时间】:2018-10-02 06:55:33
【问题描述】:
我正在尝试在运行时加载 Microsoft.Azure.Search.Common.5.0.2 的 dll。根据我在nuget page 上看到的内容,以及安装时nuget 下载的内容,这取决于 Microsoft.Rest.ClientRuntime.2.3.12 。但是,当我直接尝试使用以下内容加载 Azure.Search.Common dll 时:-
Assembly.LoadFrom(dllPath).GetTypes().Select(t => t.Namespace).Distinct().ToList<string>();
我得到以下加载程序异常:-
{"无法加载文件或程序集 'Microsoft.Rest.ClientRuntime, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。系统找不到指定的文件。":"Microsoft .Rest.ClientRuntime,版本=2.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35"}
从 nuget 安装后,我正在加载 dll。具体来说,我正在加载以下dll:
Microsoft.Azure.Search.Common\Microsoft.Azure.Search.Common.5.0.2\lib\net452\Microsoft.Azure.Search.Common.dll
为了确定,我还检查了我的 csproj 和配置文件,以检查某些版本重定向,但情况似乎并非如此。
上下文:我想知道项目可能使用的所有可能的命名空间,因此我正在下载并加载所有 nuget 包以获取它们的命名空间等。
编辑:
我试图通过将 dll 加载到 ILSpy 中来进一步分析它。在加载 dll 时,ILSpy 还显示它引用了 Microsoft.Rest.ClientRuntime 的 2.0.0.0 版本。它也无法加载该引用并给出以下错误:-
// Microsoft.Rest.ClientRuntime, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 // 程序集引用加载信息: // 在程序集引用加载过程中出现了一些问题,请参阅下文了解更多信息! // 错误:找不到参考:Microsoft.Rest.ClientRuntime, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a (未解决) // Newtonsoft.Json, 版本=6.0.0.0,文化=中性,PublicKeyToken=30ad4fe6b2a6aeed (未解决)// Microsoft.Rest.ClientRuntime.Azure,版本=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 // 组装 参考加载信息://过程中出现了一些问题 装配参考负载,请参阅下文了解更多信息! // 错误: 找不到参考:Microsoft.Rest.ClientRuntime.Azure, 版本=3.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35
【问题讨论】:
-
在我看来,
Microsoft.Azure.Search.Common.dll正在尝试加载输出目录中缺少的version 2.0的Microsoft.Rest.ClientRuntime -
同意,看起来这是一个错误。 ILSpy 给出了类似的错误。
标签: c# dll .net-assembly azure-cognitive-search assembly-loading