.Net
筆記
常常需要透過手動的方式部署,想透過一鍵 F5 執行
預設有開啟 陰影複製 (Shadow-copying) 並設定好權限,接著設定好下面 ps1 內需要的變數,就可以 F5 執行一鍵部署到 IIS 站台內。
# 定義檔案路徑和專案路徑
$projectPath = "<專案路徑>.csproj" # 例如 "D:\SomeProject.csproj"
$publishFolder = "<發佈資料夾>" # 例如 "D:\publish\SomeProject"
# 確保目標目錄存在
$destinationFolder = "<目標目錄>" # 例如 "D:\IIS\SomeProject"
$destinationFolderExcludeFiles = @("<排除檔案1>", "<排除檔案2>") # 例如 @("web.config", "appsettings.json")
# 執行 dotnet publish 命令,並輸出到 $publishFolder
dotnet publish $projectPath -c Release -o $publishFolder
# 刪除發佈資料夾內的 web.config, 確保不會覆蓋到設定檔, 除非會完全一致
if (Test-Path "$publishFolder\web.config") {
Remove-Item "$publishFolder\web.config" -ErrorAction SilentlyContinue
}
if (-Not (Test-Path -Path $destinationFolder)) {
New-Item -ItemType Directory -Path $destinationFolder
}
Remove-Item -Path "$destinationFolder\*" -Recurse -Force -Exclude $destinationFolderExcludeFiles
# 將 publish 目錄複製到對方目錄
Copy-Item -Path "$publishFolder\*" -Destination $destinationFolder -Recurse -Force
# 移除發佈的資料夾
Remove-Item -Path "$publishFolder" -Recurse -Force