Azure函数需要同一DLL的两个版本

时间:2018-05-04 07:06:11

标签: function azure reference .net-assembly

我有一个azure函数,它从我单独创建的DLL调用静态方法并上传到函数文件夹,以及它的所有依赖项(发布文件夹中的所有dll都上传到azure函数)。

当我尝试调用该函数时,我收到错误 无法加载文件或程序集'Microsoft.SharePoint.Client.Runtime,Version = 16.1.3912.1204

如果我上传此版本的Microsoft.SharePoint.Client.Runtime,我会收到一个错误,它又想要另一个版本: 无法加载文件或程序集“Microsoft.SharePoint.Client.Runtime,Version = 16.0.0.0

这怎么可能?它在Azure之外成功运行。为什么它需要同一个DLL的两个版本?该项目引用了16.1.3912.1204,这是\ bin \ release文件夹中的dll版本。

附注:我的.NET GAC文件夹包含版本16.0.0.0。如果由于某种原因,在Microsoft.SharePoint.Client dll中它需要引用两个版本,我如何在azure函数中包含同一文件的两个版本?

2 个答案:

答案 0 :(得分:0)

请勿尝试手动上传全球nuget包。而是引用此线程How can I use NuGet packages in my Azure Functions?将nuget库导入Azure功能生态系统。

之后,您可以直接将这些c#库用作,例如

using Microsoft.SharePoint;

答案 1 :(得分:0)

确保所有项目引用指向packages文件夹(nuget)dll以消除版本冲突,然后从bin文件夹上传所有DLL解决了这种情况下的问题。