我正在编写一个Azure功能,它使用私有Feed中的2个nuget包(A和B)。包A直接使用Dapper版本1.50.2,包B使用Dapper.SimpleCrud 1.13.0,它依赖于Dapper版本[1.42.0,2.0.0]。
在Azure Function中,我添加了project.json,其中指定了包A和B及其版本。
当我查看azure函数中已安装的软件包时,我看到Dapper 1.42.0和1.50.2都已安装。当我尝试调用包A和B中的方法时,我在azure函数日志中收到错误,说它无法找到Dapper版本1.40。 (取决于我如何设置我的project.json,它将是Azure功能找不到的Dapper 1.40或1.50)
我已经创建了Dapper.SimpleCRUD包的测试版本,其中对dapper的依赖性来自[1.50.2,2.0.0]并且每件事都有效。
我还尝试将Dapper 1.50.2添加到project.json中,希望它能被Dapper.SimpleCRUD使用,但它似乎仍然在吸引Dapper 1.42。
Azure Functions上是否缺少某些设置以允许此设置工作,或者这是Azure功能包管理的限制?
感谢您提供的任何帮助。
答案 0 :(得分:6)
我似乎是一个问题(AFAIK甚至直到2016年10月)他们仍然没有想出在天蓝色功能中进行绑定重定向的好方法。
我使用两个具有相同依赖性(但版本不同)的不同nuget包在我的azure函数中遇到了类似的问题。
这里有一个类似的问题:Azure Functions binding redirect
我最终保留了尽可能少的nuget,以避免绑定重定向。如果您的项目无法做到这一点,请尝试使用webjobs(至少作为短期解决方案),直到azure函数支持此项。