.NET的兩種部署模式,了解一下!
正文
其實(shí)在發(fā)布程序時(shí)有兩種模式可以選擇,框架依賴模式和獨(dú)立模式;
- 框架依賴模式:程序在發(fā)布打包時(shí),只針對(duì)程序本身進(jìn)行打包,如果打包好的程序要在其他機(jī)器上正常運(yùn)行,首先要在對(duì)應(yīng)的機(jī)器上安裝對(duì)應(yīng)版本框架的運(yùn)行時(shí),否則程序是不能運(yùn)行的;
- 獨(dú)立模式:程序在發(fā)布打包時(shí),程序和依賴的框架一起打包了,只需要將打包好的文件放到對(duì)應(yīng)的機(jī)器上直接運(yùn)行即可,不需要安裝框架運(yùn)行時(shí)。
案例演示
演示前提
新建一個(gè)MVC項(xiàng)目,默認(rèn)生成的項(xiàng)目就行,主要是有頁(yè)面,演示方便(用其他形式同理,如API或控制臺(tái)等都一樣);
實(shí)操演示
右鍵項(xiàng)目->點(diǎn)擊發(fā)布->彈框選擇發(fā)布方式,這里建議選擇用文件夾的形式,確定無(wú)誤之后再上傳到服務(wù)器比較保險(xiǎn)。
點(diǎn)擊下一步選擇對(duì)應(yīng)的發(fā)布文件夾,后續(xù)發(fā)布生成的文件就到此文件夾下啦。
指定好路徑之后,點(diǎn)擊右下角的完成,進(jìn)入如下界面;
通常會(huì)直接點(diǎn)擊發(fā)布按鈕將程序發(fā)布,其實(shí)這個(gè)時(shí)候默認(rèn)是以框架依賴的模式進(jìn)行發(fā)布的,可以點(diǎn)擊顯示所有設(shè)置進(jìn)行配置,如下:
這里先以框架依賴的方式發(fā)布一版,放到一個(gè)沒(méi)有環(huán)境的機(jī)器上試試。這里是通過(guò)Xftp工具將發(fā)布文件傳到Linux中,運(yùn)行之前,需要將項(xiàng)目的啟動(dòng)文件賦予執(zhí)行權(quán)限,否則不能執(zhí)行,如下:
看看,果然運(yùn)行不起來(lái),必須先安裝對(duì)應(yīng)版本的運(yùn)行時(shí)才行。
現(xiàn)在再切換為獨(dú)立模式發(fā)布一版,這里需要注意一點(diǎn),當(dāng)選擇獨(dú)立模式時(shí),一定要選擇目標(biāo)運(yùn)行時(shí),根據(jù)運(yùn)行的機(jī)器進(jìn)行選擇即可,這里我要放在Linux上,所以選擇Linux x64(下拉選項(xiàng)中Windows、Linux、Mac都可以選擇,根據(jù)機(jī)器選擇合適的環(huán)境發(fā)布就行)。
發(fā)布打包完成之后,同樣傳到Linux環(huán)境中,運(yùn)行如下:
可以看到,獨(dú)立部署的形式是可以正常運(yùn)行的。
兩種模式的優(yōu)缺點(diǎn)
- 框架依賴模式
優(yōu)點(diǎn):發(fā)布文件小;
缺點(diǎn):當(dāng)同一臺(tái)機(jī)器需要運(yùn)行多個(gè)程序時(shí),如果依賴的框架不同,就得重復(fù)安裝;
- 獨(dú)立模式
優(yōu)點(diǎn):部署方便,同一臺(tái)機(jī)器上不同依賴的程序互相不影響,不需要安裝對(duì)應(yīng)版本的運(yùn)行時(shí);
缺點(diǎn):發(fā)布的文件很大,包含了依賴框架的相關(guān)庫(kù)文件;
這里就簡(jiǎn)單演示了Linux環(huán)境的操作,其他環(huán)境小伙伴們自己試試吧;代碼就不上傳了,就是簡(jiǎn)單建個(gè)項(xiàng)目演示,沒(méi)有做任何更改。
總結(jié)
兩種模式可以針對(duì)自己的需要進(jìn)行部署,如果是同一臺(tái)機(jī)器需要運(yùn)行很多程序,又沒(méi)有做類(lèi)似于容器這種隔離的情況下,獨(dú)立模式感覺(jué)還不錯(cuò)哦,依賴框架互不影響,可能會(huì)避免一些麻煩事。