ASP.NET Core Runtime 依靠 .NET Core Runtime,微軟已經(jīng)為你打包好了.Net Core Runtime和ASP.Net Core Runtime,可以不用先裝.Net Core Runtime再裝ASP.Net Core Runtime,直接下載就可以使用了。
.Net Core應用程序
如使用便攜式發(fā)布的,那發(fā)布的程序中不會包含.Net Core運行時,在部署到服務器的時候就需要安裝對應的.Net Core運行時?芍苯影凑展俜降奈臋n,使用包管理器來安裝。
ASP.Net Core應用程序
如果你的是ASP.Net Core應用程序,你會發(fā)現(xiàn)使用上述方式安裝了.net core運行時之后,你的程序還是無法正常運行。會出現(xiàn)大概類似下面這樣的錯誤:
Error:
An assembly specified in the application dependencies manifest (ZKEACMS.WebHost.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
這是因為只安裝了.Net Core運行時,而沒有安裝ASP.NET Core運行時。
當然,你也可以在發(fā)布的時候帶上它:
<PropertyGroup>
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>
或者直接在運行時里面補上它就可以了。下載它,然后解壓到dotnet的安裝目錄
相關新聞
首先我們構建基礎鏡像SDK來構建應用程序,我們指定/app作為我們構建的工作目錄。然后將文件從本地文件系統(tǒng)復制到鏡像中,我們將只復制csproj文件并運行restore,然后復制其他剩余文件并運行dotnet publish來構建我們的應用程序并發(fā)布。
該文件的運行時部分使用不同的docker基礎映像也就是使用aspnetcore-runtime映像,它復制構建中的所有文件,然后定義應用程序入口點。我們發(fā)現(xiàn)在整個構建鏡像過程的不同階段都是可交互的,因為如上我們第一階段獲取構建程序鏡像也就是別名為build,在第二階段獲取運行程序鏡像也就是runtime,我們引用了build。