Azure功能:共享.csx可以使用nuget包吗?

时间:2017-06-07 07:18:42

标签: azure nuget azure-functions

Azure函数中的.csx文件如果在函数的project.json文件中列出,则可以使用nuget包。例如:

{
  "frameworks": {
    "net46":{
      "dependencies": {
        "Microsoft.ProjectOxford.Face": "1.1.0"
      }
    }
  }
}

但是,在功能应用程序根目录下(即不在特定功能中)的共享.csx文件会发生什么?有没有办法在App Function(root)级别引入nuget包?

我已经找到了将nuget包的dll上传到共享bin文件夹的解决方法,如Azure Functions C# developer reference中所述:

  

共享程序集在功能应用程序中的所有功能之间共享。要引用自定义程序集,请将程序集上载到功能应用程序,例如功能应用程序根目录中的bin文件夹。

有没有办法更好地做到这一点,所以我的代码依赖于nuget包而不是dll?

1 个答案:

答案 0 :(得分:1)

实际的包引用在每个函数中进行管理(即没有函数应用程序级别的包引用集),但是当使用AppBarButton指令进入函数时,共享的CSX文件成为同一编译的一部分unit,并且能够使用函数中定义的程序集/包引用。但是你仍然需要在功能级别管理它们。

您可以将#load行为视为常规C#项目中的链接文件,其中文件被引入,但是在项目的上下文中编译。这适用于此处的功能。