Azure函数主机无法解析依赖项

标签 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 是 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 函数主机查找和使用我的依赖项有什么想法吗?

最佳答案

只要我不使用 #I 指定搜索路径,并包含引用的完整相对路径,它现在似乎就可以工作了。

我真的不确定为什么会出现这种情况。

关于Azure函数主机无法解析依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44648058/

相关文章:

c# - Azure 上无法识别 WebAPI 路由

sql-server - node.js sql server 驱动程序 - 它仍在积极开发中吗?

azure - 从 azure blob 插入数据,并根据 blob 的名称插入到 Azure 数据工厂中的某个表中

azure - 处理 Azure 函数表绑定(bind)中的可选参数

azure - 尝试启动 Azure 机器人功能时出现错误 "Failed to decrypt settings..."

azure - 如何更改 Azure Functions (v2) 上的基本 "/api"路径?

Azure API 网关 - 支持 OpenAPI 格式属性

f# - Base62 编码的范围运算符

types - f# 将 obj 从 FSharpValue.MakeTuple 转换为元组类型

f# - Xamarin Android : F# icon not being picked up by Resources