使用Azure Functions,可以在C#函数中引用和使用NuGet包吗?
是! 尽管Azure Functions门户当前不提供添加和管理NuGet包的机制,但运行时支持NuGet引用,并会确保在编译和执行函数时正确使用了它们。
为了定义依赖关系,您需要Project.json使用必需的NuGet包引用创建文件。这是一个添加对Microsoft.ProjectOxford.Face版本1.1.0 的引用的示例:
Project.json
Microsoft.ProjectOxford.Face
{ "frameworks": { "net46":{ "dependencies": { "Microsoft.ProjectOxford.Face": "1.1.0" } } } }
Azure Functions门户提供了一种方便的方法来管理功能文件,我们可以使用该方法来创建(或上传)我们的project.json:
project.json
程序包还原过程将开始,您将在日志窗口中看到与以下类似的输出:
2016-04-04T19:02:48.745 Restoring packages. 2016-04-04T19:02:48.745 Starting NuGet restore 2016-04-04T19:02:50.183 MSBuild auto-detection: using msbuild version '14.0' from 'D:\Program Files (x86)\MSBuild\14.0\bin'. 2016-04-04T19:02:50.261 Feeds used: 2016-04-04T19:02:50.261 C:\DWASFiles\Sites\facavalfunctest\LocalAppData\NuGet\Cache 2016-04-04T19:02:50.261 https://api.nuget.org/v3/index.json 2016-04-04T19:02:50.261 2016-04-04T19:02:50.511 Restoring packages for D:\home\site\wwwroot\HttpTriggerCSharp1\Project.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程序包中定义的类型即可。已引用。
#r "AssemblyName"
using
由于Azure功能是在App Services之上构建的,因此可以替代上述步骤,因此您还可以访问标准Azure Web Apps(Azure网站)可用的所有出色部署选项。
这里有些例子:
为了使用App Service编辑器(摩纳哥)直接从浏览器直接管理文件,请执行以下操作:
Function app settings
Go to App Service Settings
Tools
On
Go
https://<function_app_name>.scm.azurewebsites.net
D:\home\site\wwwroot\<function_name>
/site/wwwroot/<function_name>
有关其他部署选项,请参见:https : //azure.microsoft.com/zh- cn/documentation/articles/web-sites-deploy/
如果您project.json在不运行Function App的情况下启用了持续集成并使用文件部署了功能,则一旦Function App初始化,程序包还原将自动发生。建议 不要 将project.lock.json文件添加到源代码管理中。
project.lock.json
函数也可以作为预编译的程序集部署,在这种情况下,所有依赖项管理都在Visual Studio中处理。此选项可以在任何版本的Visual Studio上用作标准类库,也可以通过使用Visual Studio 2017 Azure函数工具用作标准类库。