找不到根 /bin 中的 Azure 函数共享 DLL

And*_*wes 5 c# dll azure azure-functions

根据文档和我在 MS 论坛上得到的回复

我应该能够在我的 Azure Functions 应用程序的根 bin 文件夹中引用我自己的库。我将在多个函数之间共享这些库。

这是我的代码的相关部分:

#r "../bin/AquasolConnect.Connector.dll"
#r "../bin/AquasolConnect.TankLinkConnector.dll"

using System;
using AquasolConnect.Connector;
using AquasolConnect.TankLinkConnector;

public static void Run(TimerInfo GetTankReadingsTimer, TraceWriter log)
Run Code Online (Sandbox Code Playgroud)

这是我的文件夹结构:

    • 垃圾桶
      • AquasolConnect.Connector.dll
      • AquasolConnect.TankLinkConnector.dll
    • 获取坦克读数
      • 函数.json
      • 运行.csx

这是日志所说的:

2016-04-22T11:44:56.914 (1,1):错误 CS0006:找不到元数据文件“../bin/AquasolConnect.Connector.dll”

2016-04-22T11:44:56.914 (2,1):错误 CS0006:找不到元数据文件“../bin/AquasolConnect.TankLinkConnector.dll”

2016-04-22T11:44:56.914 (5,7):错误 CS0246:找不到类型或命名空间名称“AquasolConnect”(您是否缺少 using 指令或程序集引用?)

2016-04-22T11:44:56.914 (6,7):错误 CS0246:找不到类型或命名空间名称“AquasolConnect”(您是否缺少 using 指令或程序集引用?)

我究竟做错了什么?

And*_*wes 4

我能够编译该函数,但只能使用完整的文件引用。

#r "D:\home\site\wwwroot\bin\AquasolConnect.Connector.dll"  
#r "D:\home\site\wwwroot\bin\AquasolConnect.TankLinkConnector.dll" 
Run Code Online (Sandbox Code Playgroud)

但是当函数运行时我得到:

无法找到程序集“AquasolConnect.TankLinkConnector,版本=1.0.0.0,文化=中性,PublicKeyToken=null”。您是否缺少私有程序集文件?

有人更好地回答吗?

  • Andrew,不幸的是,目前“共享程序集文件”场景存在一个缺陷,这对间接依赖关系尤其有影响。我已经为此提出了一个问题,很快就会得到修复(https://github.com/Azure/azure-webjobs-sdk-script/issues/305)。当我们在这方面取得进展时,我会再次在这里发帖(我也喜欢这个问题,所以如果您愿意,可以关注那里)。 (2认同)