首页 文章

升级到1.0.8时Azure功能失败

提问于
浏览
0

使用最新版本的VS 2017 I

  • 创建一个新的azure函数项目 .

  • 添加定时器触发功能

  • 升级到最新(1.0.8)azure函数nuget包

  • 添加对azure存储的引用以创建表客户端

  • 运行项目,它只是在加载时失败 .

发生了ScriptHost错误[06.03.2018 20.46.05]执行函数时出现异常:Function1 . FunctionApp2:无法加载文件或程序集'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,PublicKeyToken = 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 回答

  • 1

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

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

    我按照您的步骤从Visual Studio中的 Manage Nuget Packages 安装 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有一些类似的问题,你可以参考 .

相关问题