与Azure Functions一起使用的软件包是否有任何限制。我已经尽力进行了研究,但似乎还没有,但是,当我尝试创建引用包“ Microsoft.ServiceFabric”的Azure函数时,出现以下错误:
System.Private.CoreLib:执行函数时发生异常: ScaleDownServiceFabrics。 FunctionApp2:无法加载文件或程序集 'System.Fabric,版本= 6.0.0.0,文化=中性, PublicKeyToken = 31bf3856ad364e35'。找不到或加载特定的 文件。 (来自HRESULT的异常:0x80131621)。 System.Private.CoreLib: 无法加载文件或程序集'System.Fabric,版本= 6.0.0.0, 文化=中性,PublicKeyToken = 31bf3856ad364e35'。
我曾经尝试过Azure Func和.1和2,以及.Net Framework和.Net Core都没有运气。
using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;
using System.Fabric;
namespace FunctionApp5
{
public static class Function1
{
[FunctionName("Function1")]
public static void Run([TimerTrigger("*/5 * * * * *")]TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
FabricClient client = new FabricClient();
}
}
}
这是可能的,还是Visual Studio中Azure函数的限制-如果是这样,可以接受哪些程序包?
答案 0 :(得分:2)
Diego和Suraj指出了64位和32位之间的冲突原因。
有两点要解决
要以简单的方式获取x64位,请使用Nodejs从NPM安装Azure Functions核心工具。
安装后,在cmd输入npm i -g azure-functions-core-tools --unsafe-perm true
中获得功能核心工具。
然后设置项目调试属性(右键单击您的项目>“属性”>“调试刀片”)。
将启动类型设置为Executable
将可执行路径设置为%appdata%\npm\node_modules\azure-functions-core-tools\bin\func.exe
。
添加应用程序参数start
。
答案 1 :(得分:2)
Microsoft.ServiceFabric
。Microsoft.ServiceFabric
最新版本6.3.x将从.Net Standard 2.0
到.Net Framework
的{{1}}和4.5
为目标,请确保在项目中使用其中任何一个。 4.7.1
个DLL复制到bin文件夹中。答案 2 :(得分:1)
我遇到的问题与原始帖子中评论的@ tank140完全相同:
Unable to load DLL 'FabricClient.dll' or one of its dependencies: The specified module could not be found. (Exception from HRESULT: 0x8007007E)
我在此问题上引发的another question中的更多详细信息。作为答案,已确认用于.NET的SF Client API要求在平台上安装SF运行时,Azure Functions不支持该运行时。