使用最新版本的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 回答
根据您的错误消息,您似乎错过了 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包 .
您可以检查Azure功能文件夹中的 project.assets 文件 .
运行结果:
此外,这个article有一些类似的问题,你可以参考 .