避免因為檔案鎖定問題造成發佈失敗,同時發佈期間也允許繼續操作
使用 Shadow Copy (適用於 .NET 6+) 編輯發佈設定檔 .pubxml 加入以下設定 <EnableMSDeployAppOffline>false</EnableMSDeployAppOffline> <MSDeploy_RenameLockedFiles>true</MSDeploy_RenameLockedFiles> 編輯 iis web.config 改為以下設定 <aspNetCore processPath="dotnet" arguments=".\xxx.dll" stdoutLogEnabled="false" hostingModel="inprocess"> <handlerSettings> <handlerSetting name="enableShadowCopy" value="true" /> <handlerSetting name="shadowCopyDirectory" value="../xxx_ShadowCopyFiles/" /> </handlerSettings> </aspNetCore> 然後將此檔案複製一份到專案根目錄,確保未來發佈新版時設定不會跑掉(不使用自動生成機制) 於 iis 專案發佈路徑同一層新增資料夾 xxx_ShadowCopyFiles ,允許發佈時有權限把檔案複製一份到此資料夾,步驟如下: 對該資料夾按右鍵 -> 內容 -> 安全性 新增您的 AppPool 帳號(通常寫為 IIS AppPool\xxx,xxx 為您的 AppPool 名稱) 輸入完後,點擊右側的 「檢查名稱 (Check Names)」。如果帳號正確,它會自動變成有底線的格式(例如 <u>LIP</u>),這代表 Windows 已經成功辨識這個虛擬帳號。 如果點擊「檢查名稱」後出現錯誤,請確認以下設定: 點擊視窗中的 「位置 (Locations...)」 按鈕。 ...