直到现在我的Azure功能只依赖于一个外部程序集(Assembly1),并且它运行正常。
但是,最近我们不得不做一些更改,因为现在有两个外部程序集,其中Assembly1引用Assembly2。
我已经部署了Assembly2和Assembly1一样(我的意思是,将.dll复制到Azure功能的“bin”文件夹中,并使用“#r Assembly2”语句将其导入Azure功能。
这给了我以下编译错误 -
执行函数时出现异常:Functions.ProcessCsvRows。 Assembly1:无法加载文件或程序集'Assembly2, Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其中一个 依赖。该系统找不到指定的文件。功能 开始(Id = dc837832-9303-4ae4-a8ae-133ab531250c)无法找到 程序集'Assembly2,Version = 1.0.0.0,Culture = neutral, 公钥=空”。你错过了一个私人程序集文件吗?
请在下面的代码中找到有关此内容的详细信息 -
#r "Assembly1"
#r "Assembly2"
using System;
using System.Net;
using Newtonsoft.Json;
using System.IO;
using System.Collections.Generic;
using System.Configuration;
using Assembly1.Entities;
public static async Task<object> Run(HttpRequestMessage req, TraceWriter log){
var jsonContent = await req.Content.ReadAsStringAsync();
dynamic data = JsonConvert.DeserializeObject(jsonContent.ToString());
ProcessCsvFileContents_Result _processResponse = await DataProcessor.ProcessCsvFileContents(data.FileContent.ToString(), connectionString, clientId, redirectUrl); // DataProcessor exists in Assembly1 only
-- response processing code --
}
非常感谢任何帮助。
答案 0 :(得分:0)
Nirman,
应使用其扩展名引用私有程序集(例如.dll)。看起来你遇到了执行失败(编译成功)
请检查以下内容:
希望这有帮助!