无法在 SharePoint 2013 场解决方案上加载文件或程序集

Can not load file or assembly on SharePoint 2013 Farm Solution

我们为 SharePoint 2013 开发了场解决方案,它使用第三方 dll,例如 Newtonsoft.Json,部署在 WebApplication Scope 而不是 GAC 下。还有其他供应商已经在引用相同 dll 文件的 WebApplication Scope 下部署了农场解决方案,但版本要旧得多,并且没有更新它们的计划。 作为防止我们的应用程序覆盖 Newtonsoft.Json 等常见 dll 的解决方案,我们更新了包清单,将 dll 部署到网络服务器 bin 文件夹中的自定义目录。 但是当执行时我们得到以下错误:

无法加载文件或程序集 Newtonsoft.Json 或其依赖项之一。系统找不到指定的文件。

我们如何解决这个问题?任何帮助表示赞赏。

截图供参考:

从解决方案中删除原始本地 dll。

然后尝试使用 Nuget 命令安装 Newtonsoft Json 包:

安装包newtonsoft.json

重建并部署解决方案以查看其是否有效。

似乎问题是 CLR(公共语言运行时)无法定位和绑定引用的程序集,因为它位于自定义目录中。

最终在 web.config 文件中注册自定义目录:

<configuration>  
   <runtime>  
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  
         <probing privatePath="bin;bin\Custom"/>  
      </assemblyBinding>  
   </runtime>  
</configuration>

要了解有关探测的更多信息,请参阅 Probing

上的官方 Microsoft 文档