我有一个连接到数据库的 Azure 函数,但它失败并显示以下消息 -
The type or namespace name 'Npgsql' could not be found (are you missing a using directive or an assembly reference?)
在 project.json
中,我有以下声明 -
{
"frameworks": {
"net46":{
"dependencies": {
"Npgsql": "3.2.2",
"System.Runtime.Serialization.Formatters": "4.3.0"
}
}
}
}
奇怪的是,我有完全相同的函数(从八达通部署)在另一个函数应用程序(较低的环境)上运行,没有问题。
有谁能够解释为什么我的依赖关系在一个功能应用程序中被忽略,而在另一个功能应用程序中却没有被忽略?
最佳答案
因此,这似乎是由于 Function App 的部署方式造成的。我正在使用 Octopus,通过“部署 Azure Web 应用程序”流程步骤进行部署,似乎发生的只是旧文件被删除,更新的文件被复制。
问题是,据我所知,除非您通过门户编辑文件然后保存,否则 project.json
中的依赖关系不会得到解决。
我不确定这是否可以被归类为 Octopus 或 Azure 中的错误(或者只是非常懒惰的功能应用程序实现),但这非常令人沮丧。从本质上讲,它使得远程部署包含对 function.json
的更改的 Function App 变得不可能。
关于Azure Function App忽略依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45148517/