Azure功能主机不会解析依赖项

时间:2017-06-20 08:43:38

标签: azure f# azure-functions paket

我正在尝试将F#和Paket与Azure Functions一起使用。我正在运行Azure Functions Core Tools,因此我可以在将它们部署到Azure之前在本地运行我的函数。

问题是当我运行该函数时,编译失败:

warning FS211: The search directory 'C:\Users\MY_USER\AppData\Local\Temp\51f4f9fa-dc47-48b7-a2fa-432b52cf02a9\../packages' could not be found

相关代码如下:

#I "../packages"

#r "FSharp.Data/lib/net40/Fsharp.Data.dll"
#r "WindowsAzure.Storage/lib/net45/Microsoft.WindowsAzure.Storage.dll"
#r "System.Net.Http/lib/net46/System.Net.Http.dll"

现在,../packages是相对于.fsx文件的Paket依赖项的正确路径。当我在VS Code中以交互方式运行代码时,这很好用,但Azure主机似乎使用了一个奇怪的搜索目录(不存在,BTW),而不是使用代码目录。

我尝试指定绝对路径,如:

#r "C:/MY_PATH/packages/FSharp.Data/lib/net40/Fsharp.Data.dll"
#r "C:/MY_PATH/packages/WindowsAzure.Storage/lib/net45/Microsoft.WindowsAzure.Storage.dll"
#r "C:/MY_PATH/packages/System.Net.Http/lib/net46/System.Net.Http.dll"

这样做可以编译代码,但运行时我遇到了这个错误:

Unable to find assembly 'FSharp.Data, Version=2.3.3.0, Culture=neutral, PublicKeyToken=null'. Are you missing a private assembly file?

我检查了FSharp.Data程序集确实是版本2.3.3.0

关于如何让Azure功能主机查找和使用我的依赖项的任何想法?

1 个答案:

答案 0 :(得分:1)

它似乎现在正在工作,只要我没有指定#I的搜索路径,并包含引用的完整相对路径。

我真的不确定为什么但情况确实如此。