【问题标题】:Microsoft.WindowsAzure.Storage.dll version mismatch error in azure functionsAzure 函数中的 Microsoft.WindowsAzure.Storage.dll 版本不匹配错误
【发布时间】:2017-05-12 12:51:22
【问题描述】:

我正在使用一个 dll (MyApp.dll),它通过 nuget 引用 azure storage dll 版本 7.2.1。我已使用 "WindowsAzure.Storage": "7.2.1" 将 project.json 文件添加到我的 azure 函数中。 我还将 Microsoft.WindowsAzure.Storage 上传到 bin\ 目录。我的 run.csx 文件只有“new MyApp.Run(req)”。

我收到有关缺少 dll 的以下错误,我还可以在我的 azure 函数中更改什么来解决此错误?我可以在本地很好地使用 MyApp.dll。

'' 的类型初始值设定项引发了异常。无法加载文件 或程序集 'Microsoft.WindowsAzure.Storage, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其之一 依赖关系。定位程序集的清单定义不 匹配程序集引用。 (HRESULT 异常:0x80131040)。

【问题讨论】:

  • 你能分享你的 project.json 以及你如何从你的 csx 中引用你的私有程序集吗?另外,你不应该混合这两种方法。您可能还想尝试的一件事是通过简单地添加对您的 csx 的引用来使用共享存储程序集:#r "Microsoft.WindowsAzure.Storage"(从 bin 文件夹中删除 project.json 和存储程序集)跨度>
  • 如果我们的 project.json 的 azure 存储版本与 azure 函数提供的版本不同,会发生什么情况?如果我包含一个引用存储 dll 的 dll(而不是直接使用存储 dll 的 run.csx 文件),添加 project.json 似乎更自然。我希望放置 projects.json 中的 dll。顺便说一句,我通过切换到与 azure 函数相同的版本解决了我的问题。但是,当 azure 函数切换其存储 dll 版本而我的 dll 没有切换时,它可能会中断。您能否分享有关处理此类差异的最佳方法的文档?
  • 破坏依赖项更改将被视为破坏运行时更改,并且不会自动推送到现有功能应用程序。

标签: azure azure-functions


【解决方案1】:

您是否在 project.json 中自己引用了 WindowsAzure.Storage?你不应该,因为环境已经为你引用了那个。你应该使用 #r 来引用这个:

#r "Microsoft.WindowsAzure.Storage"
using Microsoft.WindowsAzure.Storage.Blob;

这只是在您的函数本身中设置。

docs.microsoft.com/en-us/azure/azure-functions/functions-reference-csharp#referencing-external-assemblies

【讨论】:

    猜你喜欢
    • 2011-03-07
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多