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應(yīng)用程序
如使用便攜式發(fā)布的,那發(fā)布的程序中不會(huì)包含.Net Core運(yùn)行時(shí),在部署到服務(wù)器的時(shí)候就需要安裝對(duì)應(yīng)的.Net Core運(yùn)行時(shí)?芍苯影凑展俜降奈臋n,使用包管理器來(lái)安裝。
ASP.Net Core應(yīng)用程序
如果你的是ASP.Net Core應(yīng)用程序,你會(huì)發(fā)現(xiàn)使用上述方式安裝了.net core運(yùn)行時(shí)之后,你的程序還是無(wú)法正常運(yùn)行。會(huì)出現(xiàn)大概類(lèi)似下面這樣的錯(cuò)誤:
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
這是因?yàn)橹话惭b了.Net Core運(yùn)行時(shí),而沒(méi)有安裝ASP.NET Core運(yùn)行時(shí)。
當(dāng)然,你也可以在發(fā)布的時(shí)候帶上它:
<PropertyGroup>
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>
或者直接在運(yùn)行時(shí)里面補(bǔ)上它就可以了。下載它,然后解壓到dotnet的安裝目錄
相關(guān)新聞
首先我們構(gòu)建基礎(chǔ)鏡像SDK來(lái)構(gòu)建應(yīng)用程序,我們指定/app作為我們構(gòu)建的工作目錄。然后將文件從本地文件系統(tǒng)復(fù)制到鏡像中,我們將只復(fù)制csproj文件并運(yùn)行restore,然后復(fù)制其他剩余文件并運(yùn)行dotnet publish來(lái)構(gòu)建我們的應(yīng)用程序并發(fā)布。
該文件的運(yùn)行時(shí)部分使用不同的docker基礎(chǔ)映像也就是使用aspnetcore-runtime映像,它復(fù)制構(gòu)建中的所有文件,然后定義應(yīng)用程序入口點(diǎn)。我們發(fā)現(xiàn)在整個(gè)構(gòu)建鏡像過(guò)程的不同階段都是可交互的,因?yàn)槿缟衔覀兊谝浑A段獲取構(gòu)建程序鏡像也就是別名為build,在第二階段獲取運(yùn)行程序鏡像也就是runtime,我們引用了build。