Dot-Net

我應該安裝什麼包來執行已部署的 .Net Core 應用程序?

  • November 21, 2017

我正在建構一個 .Net Core API,它將託管在基於 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 應用程序,您是否使用.Net Core 應用程序部署包dotnet-hostingdotnet-runtime包?

經過進一步研究,我發現dotnet-hosting包結合了dotnet-runtimeaspnetcore-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 上自己測試了這個包,它執行良好。

引用自:https://serverfault.com/questions/884332