【问题标题】:Azure Functions dll version mismatchAzure Functions dll 版本不匹配
【发布时间】:2017-04-09 17:54:33
【问题描述】:

我们有一个 Azure 函数,它通过私有 Nuget 源引用外部程序集。

我们遇到的问题是我们有两个不同版本的 Microsoft.Azure.WebJobs.dll - 一个是我们的 nuget 包的依赖项,另一个是我假设由运行时提供的。

 error CS1503: Argument 2: cannot convert from 'Microsoft.Azure.WebJobs.ICollector<Microsoft.WindowsAzure.Storage.Table.ITableEntity> [D:\Program Files (x86)\SiteExtensions\Functions\1.0.10635\bin\Microsoft.Azure.WebJobs.dll]' to 'Microsoft.Azure.WebJobs.ICollector<Microsoft.WindowsAzure.Storage.Table.ITableEntity> 

我发现这个问题说不支持绑定重定向:

Azure Functions binding redirect

我们可以尝试删除对该库的依赖,或者我们可以匹配 Azure Functions 使用的版本,但我认为无论如何使用 Microsoft.WindowsAzure.Storage 都会遇到同样的问题。

请指教!

【问题讨论】:

    标签: azure azure-functions


    【解决方案1】:

    不支持绑定重定向是正确的。运行时对 WebJobs SDK 和存储库有自己的依赖关系,因此传递给您的函数的对象将来自这些版本。我建议删除您对其他版本的依赖,并使用我们的。请注意,对于这些库,您不必添加自己的包引用,您可以通过以下方式在函数代码中引用我们的:

    #r "WindowsAzure.Storage"
    

    您不需要为 WebJobs SDK 类型添加显式 #r 引用(例如 ICollector&lt;T&gt;) - 运行时会隐式添加该程序集。当然,这只适用于我们为您编译的函数代码,不适用于来自您的外部包的代码。

    将来我们可能会改进这方面的内容,但现在如果您尝试使用有冲突的版本,您将处于上游。

    【讨论】:

    • 很有趣,但仍然提出了一个问题,为什么我们不能从 nuget 中提取该版本。
    • 如果您使用我们正在使用的相同(或兼容)版本,您可以从 nuget 中提取包。
    • 这是我们的愚蠢错误,我们将函数运行时的版本误认为是 Webjobs dll 的版本。运行 2.0.0 - 它的行为正确。我们已经删除了对这些包的依赖,所以不管怎样都很好。感谢您的所有帮助!
    猜你喜欢
    • 2011-10-07
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-21
    • 1970-01-01
    • 2017-05-12
    相关资源
    最近更新 更多