Azure Functions:共享的 .csx 可以使用 nuget 包吗?
Azure Functions: Can a shared .csx use a nuget package?
如果 Azure 函数中的 .csx 文件列在函数的 project.json 文件中,则它可以使用 nuget 包。例如:
{
"frameworks": {
"net46":{
"dependencies": {
"Microsoft.ProjectOxford.Face": "1.1.0"
}
}
}
}
但是放置在 Function App 根目录下(即不在特定函数中)的共享 .csx 文件会发生什么情况?有没有办法在App Function(root)级别引入nuget包?
我找到了将 nuget 包的 dll 上传到共享 bin 文件夹的解决方法,如 Azure Functions C# developer reference:
中所述
Shared assemblies are shared across all functions within a function app. To reference a custom assembly, upload the assembly to your function app, such as in a bin folder in the function app root.
有没有更好的方法让我的代码依赖于 nuget 包而不是 dll?
实际的包引用在每个函数中进行管理(即没有函数应用程序级别的包引用集),但是当使用 #load
指令将其引入您的函数时,共享 CSX 文件成为相同的编译单元,并且能够使用函数中定义的 assembly/package 引用。但是您仍然需要在功能级别管理它们。
您可以将 #load
行为视为常规 C# 项目中的链接文件,其中引入文件,但在项目上下文中编译。这适用于此处的函数。
如果 Azure 函数中的 .csx 文件列在函数的 project.json 文件中,则它可以使用 nuget 包。例如:
{
"frameworks": {
"net46":{
"dependencies": {
"Microsoft.ProjectOxford.Face": "1.1.0"
}
}
}
}
但是放置在 Function App 根目录下(即不在特定函数中)的共享 .csx 文件会发生什么情况?有没有办法在App Function(root)级别引入nuget包?
我找到了将 nuget 包的 dll 上传到共享 bin 文件夹的解决方法,如 Azure Functions C# developer reference:
中所述Shared assemblies are shared across all functions within a function app. To reference a custom assembly, upload the assembly to your function app, such as in a bin folder in the function app root.
有没有更好的方法让我的代码依赖于 nuget 包而不是 dll?
实际的包引用在每个函数中进行管理(即没有函数应用程序级别的包引用集),但是当使用 #load
指令将其引入您的函数时,共享 CSX 文件成为相同的编译单元,并且能够使用函数中定义的 assembly/package 引用。但是您仍然需要在功能级别管理它们。
您可以将 #load
行为视为常规 C# 项目中的链接文件,其中引入文件,但在项目上下文中编译。这适用于此处的函数。