Я создаю API .Net Core, который будет размещен на сервере на основе Ubuntu. Я устанавливаю необходимые мне пакеты на сервере, то есть MySQL и Nginx, но, конечно же, мне нужно установить .Net Core для запуска приложения.
Я нашел пример учебника о том, как установить и настроить Nginx для работы с сервером Kestrel, но предполагается, что у вас уже установлен .Net Core на компьютере, на котором он будет развернут.
Веб-сайт .Net Core, кажется, только инструктирует вас установить SDK, но он предназначен для развертывания, а не разработки, поэтому имеет смысл вместо этого установить среду выполнения .Net Core, однако при выполнении apt-cache search dotnet
чтобы найти конкретное имя пакета, я нашел dotnet-hosting-2.0.0
перечислены также, что описано в «Microsoft .NET Core 2.0.0 Linux Server Hosting».
Подводя итог, мой вопрос заключается в следующем. Для размещения приложения .Net Core вы используете dotnet-hosting
или dotnet-runtime
пакет для развертывания приложения .Net Core?
После дальнейших исследований я обнаружил, что dotnet-hosting
пакет сочетает в себе dotnet-runtime
и aspnetcore-store
пакеты. Проверено этот комментарий Github.
Среда выполнения и хранилище среды выполнения упакованы в установщики "Linux Server Hosting" с именем пакета.
dotnet-hosting-2.0.0
.
aspnetcore-store
сейчас по умолчанию обязательная зависимость об опубликованных приложениях ASP.Net Core.
По умолчанию приложения ASP.NET публикуются в зависимости от хранилища среды выполнения.
Итак, чтобы ответить на мой вопрос прямо, dotnet-hosting-x.x.x
должен быть установлен при развертывании приложения ASP.Net Core. Это также устранит следующую ошибку, когда aspnetcore-store
не устанавливается вместе с dotnet-runtime
пакет.
Error:
An assembly specified in the application dependencies manifest (APIproject.deps.json) was not found:
package: 'Microsoft.ApplicationInsights.AspNetCore', version: '2.1.1'
path: 'lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll'
This assembly was expected to be in the local runtime store as the application was published using the following target manifest files:
aspnetcore-store-2.0.0-linux-x64.xml;aspnetcore-store-2.0.0-osx-x64.xml;aspnetcore-store-2.0.0-win7-x64.xml;aspnetcore-store-2.0.0-win7-x86.xml
Я сам тестировал пакет на Ubuntu 16.04 со своим приложением, и он работает хорошо.