我正在尝试将 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
是 Paket 依赖项的正确路径,相对于 .fsx 文件。当我在 VS Code 中以交互方式运行代码时,这可以正常工作,但是 Azure 主机似乎使用了一个奇怪的搜索目录(顺便说一句,它不存在)而不是使用代码目录。
我尝试指定绝对路径,例如:
#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 函数主机查找和使用我的依赖项的任何想法?