【发布时间】:2016-11-14 09:51:23
【问题描述】:
到目前为止,我的 Azure 函数仅依赖于一个外部程序集 (Assembly1),并且运行良好。
但是,最近我们不得不进行一些更改,因为现在有两个外部程序集,其中 Assembly1 正在引用 Assembly2。
我已经部署了与 Assembly1 相同的 Assembly2(我的意思是,将 .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,版本=1.0.0.0,文化=中性, PublicKeyToken=null'。您是否缺少私有程序集文件?
请在下面的代码中找到更多详细信息 -
#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 --
}
非常感谢您对此提供的任何帮助。
【问题讨论】:
-
是的,我已经提到了,我正在执行那里列出的所有步骤,除了我在相关 Azure 函数的 bin 文件夹中上传的 DLL 文件的位置,因为我的是私有程序集(并且不共享)。正如我所说,这一切都很好,直到我只需要使用“Assembly1”。一旦我介绍了“Assembly2”,我就开始面临这个问题。
-
所以你的函数文件夹中有一个包含你的dll的bin文件夹?根据文档here,这应该可以工作。尝试按照文档将“.dll”添加到程序集名称的末尾,看看是否有帮助。
标签: c# azure azure-functions azure-logic-apps