Как я могу использовать пакеты NuGet в своих функциях Azure?
используя Функции Azure, могу ли я ссылаться и использовать пакеты NuGet в моей функции C#?
3 ответа:
да! Хотя портал функций Azure в настоящее время не предоставляет механизм для добавления пакетов NuGet и управления ими, среда выполнения поддерживает ссылки на NuGet и обеспечивает их правильное использование при компиляции и выполнении функций.
чтобы определить ваши зависимости, вам нужно создать
Project.json
файл с необходимыми ссылками на пакет NuGet. Вот пример, который добавляет ссылку наMicrosoft.ProjectOxford.Face
версия 1.1.0:{ "frameworks": { "net46":{ "dependencies": { "Microsoft.ProjectOxford.Face": "1.1.0" } } } }
Лазурное Портал функций предоставляет удобный способ управления вашими функциональными файлами, которые мы можем использовать для создания (или загрузки) наших
project.json
:
- в функции разработки, нажмите кнопку просмотр файлов
- нажмите на опцию создать файл (вы также можете нажать на опцию, чтобы загрузить файл, если у вас есть ранее созданный
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.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 автоматически добавит ссылки на сборки пакетов, поэтому вам не нужно явно добавлять ссылки на сборки с помощью
#r "AssemblyName"
, вы можете просто добавить необходимоеusing
операторы для вашей функции и использовать типы определено в пакете NuGet, на который вы ссылаетесь.Дополнительные параметры развертывания
вот несколько примеров:
С Помощью Редактора Службы Приложений (Монако)
для того, чтобы управлять файлами непосредственно из Вашего браузера с помощью использование редактора службы приложений (Монако):
- на портале функций Azure нажмите кнопку
Function app settings
- под Дополнительные Параметры, нажмите кнопку
Go to App Service Settings
- нажмите на кнопку
- под разработки, нажмите кнопку Редактор Службы Приложений
- превратить его
On
если он еще не включен и нажмите наGo
- после того, как он загружается, перетащите ваш
project.json
файл в папку вашей функции (папка, названная в честь вашей функции.использование конечной точки SCM (Kudu)
- переход к:
https://<function_app_name>.scm.azurewebsites.net
- нажать на кнопку консоль отладки > CMD
- перейти к
D:\home\site\wwwroot\<function_name>
- перетащите ваш
Project.json
файл в папку (на сетку файлов)FTP
- следуйте инструкциям здесь получить FTP настроен
после подключения (следуя инструкциям выше) скопируйте ваш до
/site/wwwroot/<function_name>
дополнительные параметры развертывания см. В разделе: https://azure.microsoft.com/en-us/documentation/articles/web-sites-deploy/
Непрерывная Интеграция
если вы включаете непрерывную интеграцию и развертываете свою функцию с помощью
project.json
файл когда ваша функция приложение не работает, пакет восстановление произойдет автоматически, как только ваша функция приложение инициализирует. Рекомендуется, чтобы вы не добавитьproject.lock.json
file to source control.предварительно скомпилированные сборки
функции также могут быть развернуты как предварительно скомпилированные сборки, и в этом случае все управление зависимостями обрабатывается в Visual студии. Этот параметр можно использовать в качестве стандартных библиотек классов в любой версии Visual Studio или с помощью Visual Studio 2017 Azure Функции Инструменты.
вы можете использовать пакеты Nuget в своих функциях Azure. Проще всего будет использовать Visual Studio 2017 15.4, где есть шаблон для функций Azure. Выполните следующие действия
1) Добавить проект функции Azure: щелкните правой кнопкой мыши на решении и выберите Добавить новый проект. Перейдите в облачный вариант там вы найдете проект "функция Azure".
2) теперь довольно добавить любой пакет Nuget. Разверните "зависимости" и щелкните правой кнопкой мыши на нем, чтобы выберите опцию "Управление пакетами Nuget". Появится диалоговое окно пакет Nuget, выберите любой пакет Nuget, который вы хотите установить. Смотрите скриншот ниже
3) Теперь опубликуйте свою функцию Azure, Visual Studio позаботится обо всех настройках и т. д.
этот метод будет работать только в том случае, если вы используете Visual Studio 2017 15.4 или выше, если нет, вам придется следовать другим путям, как описано другими.