【问题标题】:Azure functions transitive dependencies loading errorAzure 函数传递依赖项加载错误
【发布时间】:2018-05-10 14:21:22
【问题描述】:

我正在使用 Azure 函数 1.x 运行时并使用 .net 框架 4.6.2 在我的解决方案中,我有两个项目

1) 函数应用项目 2) 针对 4.6.2 框架的类库。它包含我的业务逻辑的所有代码。该类库还有其他依赖,由 nuget 添加

函数应用项目通过解决方案中的项目引用引用类库。

当我构建项目时,所有内容都会编译且没有任何错误,并且在我的函数应用项目的 bin 文件夹下,我可以看到业务逻辑库 dll 及其依赖项

但是当我运行项目时,它给了我"Could not load assembly" 的错误。这个程序集是指我的业务逻辑库的传递依赖,它是通过 nuget 添加的。

我已经比较了版本和所有内容,在我的函数应用项目的 bin 文件夹下,我可以看到所有必需的依赖项,然后为什么函数运行时无法加载这些文件。 我是不是做错了什么

请指教。

【问题讨论】:

  • 这是目前一直存在的痛点,请参阅this issue

标签: azure azure-functions azure-functions-runtime


【解决方案1】:

解决方法可以是为您的函数创建类库项目,而不是函数应用项目。

https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-class-library

我们这样做没有依赖版本的问题,例如牛顿软件

缺点是你不能在 VS 中本地调试你的函数。但是,如果您有单元测试,那就没那么痛苦了。

【讨论】:

  • 函数应用项目模板本身不就是类库吗?
  • 确实如此。但是为它构建是不同的。查看 bin 文件夹结构。过去,我将项目作为类库复制 bin 输出并配置 json - 依赖项没有任何问题。现在我正在使用函数项目,需要解决依赖问题。这就是为什么我称之为解决方法:)
  • 该类库可以与函数应用项目在同一个解决方案中,也可以必须在不同的解决方案中(并创建类库的nuget包,并将包导入函数应用项目)
猜你喜欢
  • 2020-03-01
  • 1970-01-01
  • 2017-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-10
  • 2013-02-17
相关资源
最近更新 更多