是! 尽管Azure Functions门户当前不提供添加和管理NuGet包的机制,但运行时支持NuGet引用,并会确保在编译和执行函数时正确使用了它们。
为了定义依赖关系,您需要
Project.json使用必需的NuGet包引用创建文件。这是一个添加对
Microsoft.ProjectOxford.Face版本1.1.0
的引用的示例:
{ "frameworks": { "net46":{ "dependencies": { "Microsoft.ProjectOxford.Face": "1.1.0" } } }}Azure Functions门户提供了一种方便的方法来管理功能文件,我们可以使用该方法来创建(或上传)我们的
project.json:
- 在函数的 开发 部分中,单击 查看文件
- 单击选项以 创建 文件(如果
project.json
计算机上先前已创建文件,也可以单击选项以上传文件) - 命名文件
project.json
并定义包引用(您可以将上面的示例用作模板)。
程序包还原过程将开始,您将在日志窗口中看到与以下类似的输出:
2016-04-04T19:02:48.745 Restoring packages.2016-04-04T19:02:48.745 Starting NuGet restore2016-04-04T19:02:50.183 MSBuild auto-detection: using msbuild version '14.0' from 'D:Program Files (x86)MSBuild14.0bin'.2016-04-04T19:02:50.261 Feeds used:2016-04-04T19:02:50.261 C:DWASFilesSitesfacavalfunctestLocalAppDataNuGetCache2016-04-04T19:02:50.261 https://api.nuget.org/v3/index.json2016-04-04T19:02:50.261 2016-04-04T19:02:50.511 Restoring packages for D:homesitewwwrootHttpTriggerCSharp1Project.json...2016-04-04T19:02:52.800 Installing Newtonsoft.Json 6.0.8.2016-04-04T19:02:52.800 Installing Microsoft.ProjectOxford.Face 1.1.0.2016-04-04T19:02:57.095 All packages are compatible with .NETframework,Version=v4.6.2016-04-04T19:02:57.189 2016-04-04T19:02:57.189 2016-04-04T19:02:57.455 Packages restored.
如预期的那样,Azure Functions运行时将自动将引用添加到程序包程序集,因此您无需使用显式添加程序集引用
#r"AssemblyName",您只需将所需的
using语句添加到函数中,并使用在您的NuGet程序包中定义的类型即可。已引用。
其他部署选项
由于Azure功能是在App Services之上构建的,因此可以替代上述步骤,因此您还可以访问标准Azure Web
Apps(Azure网站)可用的所有出色部署选项。
这里有些例子:
使用App Service编辑器(摩纳哥)
为了使用App Service编辑器(摩纳哥)直接从浏览器直接管理文件,请执行以下操作:
- 在Azure Functions门户上,单击
Function app settings
- 在“ 高级设置” 部分下,点击
Go to App Service Settings
- 点击
Tools
按钮 - 在“ 开发”下 ,单击“ App Service编辑器”
On
如果尚未启用,请打开它,然后单击Go
- 加载后,将
project.json
文件拖放到函数的文件夹(以函数命名的文件夹)中。
使用SCM(Kudu)端点
- 导航:
https://<function_app_name>.scm.azurewebsites.net
- 单击 调试控制台 > CMD
- 导航
D:homesitewwwroot<function_name>
- 将
Project.json
文件拖放到文件夹中(到文件网格上)
的FTP
- 请按照此处的说明进行FTP配置
- 连接后(按照上面的说明进行操作),将
Project.json
文件复制到/site/wwwroot/<function_name>
有关其他部署选项,请参见:https : //azure.microsoft.com/zh-
cn/documentation/articles/web-sites-deploy/
持续集成
如果您
project.json在不运行Function App的情况下启用了持续集成并使用文件部署了功能,则一旦Function
App初始化,程序包还原将自动发生。建议 不要 将
project.lock.json文件添加到源代码管理中。
预编译的程序集
函数也可以作为预编译的程序集部署,在这种情况下,所有依赖项管理都在Visual Studio中处理。此选项可以在任何版本的Visual
Studio上用作标准类库,也可以通过使用Visual Studio 2017
Azure函数工具用作标准类库。



