升级到1.0.8时,Azure功能失败

时间:2018-03-06 20:47:16

标签: azure azure-functions

使用最新版本的VS 2017 I

  • 创建一个新的azure函数项目。
  • 添加计时器触发功能
  • 升级到最新(1.0.8)azure功能nuget包
  • 添加对azure存储的引用以创建表客户端
  • 运行项目,它只是在加载时失败。
  

发生了ScriptHost错误[06.03.2018 20.46.05]异常时   执行功能:Function1。 FunctionApp2:无法加载文件或   assembly' Microsoft.WindowsAzure.Storage,Version = 8.6.0.0,   Culture = neutral,PublicKeyToken = 31bf3856ad364e35'。找不到或   加载特定文件。 (来自HRESULT的异常:0x80131621)。   System.Private.CoreLib:无法加载文件或程序集   ' Microsoft.WindowsAzure.Storage,Version = 8.6.0.0,Culture = neutral,   公钥= 31bf3856ad364e35'

示例代码:

    [FunctionName("Function1")]
    public static void Run([TimerTrigger("0 */5 * * * *", RunOnStartup = true)]TimerInfo myTimer, TraceWriter log)
    {
        log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
        var storageAccount = CloudStorageAccount.Parse("[someConnectionString]");
        var tbc = storageAccount.CreateCloudBlobClient();
    }

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

  

无法加载文件或程序集'Microsoft.WindowsAzure.Storage

根据您的错误消息,您似乎错过了 Microsoft.WindowsAzure.Storage 程序集或程序包版本冲突。您可以检查是否使用了相同的不同版本的包。检查Microsoft.NET.Sdk.Functions 1.0.8的依赖关系的兼容性。或者尝试卸载然后重新安装Microsoft.NET.Sdk.Functions包。

我按照您的步骤在Visual Studio中从管理Nuget包安装 Microsoft.NET.Sdk.Functions 1.0.8。然后我直接运行TimeTrigger。一切正常。我可以在依赖项中看到Microsoft.WindowsAzure.Storage包。

enter image description here

您可以检查Azure功能文件夹中的 project.assets 文件。

enter image description here

运行结果:

enter image description here

此外,这个article有一些类似的问题,你可以参考。