文章描述:在此之前,我一直習慣使用文件夾的發(fā)布方式,即在項目上右鍵->發(fā)布->文件夾。然后設置其相關(guān)屬性,等vs發(fā)布完畢之后,自己再復制到服務(wù)器,很多時(shí)候還得需要先停止服務(wù)才能復制上去,感覺(jué)就很麻煩(雖然用習慣了);其實(shí)通過(guò)ftp的方式或許也可以,只是我不太喜歡,因為還得先去服務(wù)器去配置ftp等相關(guān)服務(wù),而后這個(gè)ftp除了做這個(gè)好像也沒(méi)其他用,再者,我并不能確定是否可以不手動(dòng)停止服務(wù)就能直接發(fā)布上去(我從一開(kāi)始就排斥,所以沒(méi)試過(guò),有興趣的可以自己試下)。

開(kāi)發(fā)環(huán)境:.NET6
開(kāi)發(fā)工具: Visual Studio 2022
實(shí)現步驟:
首先要確保IIS安裝了管理腳本和工具
下載web部署包:
https://download.visualstudio.microsoft.com/download/pr/e1828da1-907a-46fe-a3cf-f3b9ea1c485c/035860f3c0d2bab0458e634685648385/webdeploy_amd64_en-us.msi
3. 安裝的時(shí)候選擇完全安裝,好像是最后一個(gè)選項。這個(gè)很重要
4. 等安裝完成后,會(huì )在IIS右鍵菜單上顯示部署選項

點(diǎn)擊部署->啟用Web Deploy發(fā)布,這里設置其可以發(fā)布的用戶(hù)(默認就是你當前使用的用戶(hù),密碼也是你遠程的密碼)
輸入sql字符串這里,由于我發(fā)布的是.net6 webapi,sql字符串是配置到appsettings.json中的,在這里識別不到,不過(guò)也沒(méi)關(guān)系,因為在iis發(fā)布設置的時(shí)候,是可以識別到并替換的
后面兩個(gè)設置也就不用管了,點(diǎn)設置把文件保存就ok了
把文件復制到本地,然后用記事本編輯一下,內容大致如下,記得把注釋去掉
<?xml version="1.0" encoding="utf-8"?>
<publishData>
<publishProfile
<!--這里xxx換成服務(wù)器的IP-->
publishUrl="https://xxx:8172/msdeploy.axd"
<!--這里是iis需要部署的網(wǎng)站名稱(chēng)-->
msdeploySite="Default Web Site"
<!--這里是發(fā)布完成后打開(kāi)的網(wǎng)址,可測試用-->
destinationAppUrl="http://xxx:80/"
<!--mysql連接字符串-->
mySQLDBConnectionString=""
<!--sqlserver連接字符串-->
SQLServerDBConnectionString=""
profileName="Default Settings"
publishMethod="MSDeploy"
userName="xxx\Administrator" />
</publishData>
回到vs2022,在WebApi項目上右鍵->發(fā)布->導入配置文件->我們剛剛編輯的文件
導入成功后,在這個(gè)頁(yè)面點(diǎn)擊顯示所有設置

在連接選項中,將服務(wù)器密碼寫(xiě)入并選擇保存密碼
在設置選項中,勾選在運行時(shí)使用此連接字符串,寫(xiě)入正式庫的連接字符串就會(huì )在發(fā)布的時(shí)候自動(dòng)替換了,其他設置可根據需要填寫(xiě)并保存。
回到VS2022,在頭部可以看到剛剛保存的配置,直接點(diǎn)擊發(fā)布按鈕即可完成發(fā)布,如果沒(méi)有可以自己在頭部空白部分右鍵找出你需要的選項。也可以通過(guò)項目右鍵的方式進(jìn)行發(fā)布。

自此就完成了一鍵發(fā)布的配置,以后發(fā)布就爽快多了(建議個(gè)人或者小公司使用,大公司一般會(huì )有自己比較嚴格的發(fā)布流程)
相關(guān)資料:
https://learn.microsoft.com/zh-cn/visualstudio/deployment/tutorial-import-publish-settings-iis?view=vs-2022
聯(lián)系客服