DotNetCore跨平臺~釋出指令碼PowerShell的設計
阿新 • • 發佈:2018-12-30
這幾天對PS情有獨忠,被它的強大功能所希引,它可以快速部署,快速釋出,將一些連帶的動作一次的完成,挺方便,類似於早期的bat檔案,也像linux平臺的bash指令碼,但功能上,比前兩者都要強很多,下面我們看一下將某個解決方案下的所有專案一次publish的過程,我們使用ps指令碼來實現的。
# 作者:倉儲大叔 # 功能:釋出專案到指定的地方 Param([string] $rootPath) $scriptPath = Split-Path $script:MyInvocation.MyCommand.Path Write-Host "Current script directory is $scriptPath" -ForegroundColor Yellow if ([string]::IsNullOrEmpty($rootPath)) { $rootPath = "$scriptPath\.." } Write-Host "Root path used is $rootPath" -ForegroundColor Yellow $projectPaths = @{Path="$rootPath\src\LindCore.Manager";Prj="LindCore.Manager.csproj";Name="web"}, @{Path="$rootPath\src\LindCore.Test";Prj="LindCore.Test.csproj";Name="console"} $projectPaths | foreach { $projectPath = $_.Path $projectFile = $_.Prj $name=$_.Name # $outPath = $_.Path + "\obj\publish" $outPath = "d:\publish\"+$name $projectPathAndFile = "$projectPath\$projectFile" Write-Host "Deleting old publish files in $outPath" -ForegroundColor Yellow remove-item -path $outPath -Force -Recurse -ErrorAction SilentlyContinue Write-Host "Publishing $projectPath to $outPath" -ForegroundColor Yellow dotnet restore $projectPathAndFile dotnet build $projectPath dotnet publish $projectPath -o $outPath }
注意:如果你只是把跨平臺專案發到obj\publish資料夾的話,那wwwroot這些資料夾不會生成,而如果發到其它磁碟,將會生成這些靜態的檔案,這點要注意!
跨平臺專案,需要在project.json裡把執行時都加上,否則你的專案保能在當前平臺執行
"runtimes": { "win7-x64": {}, "linux-x64": {}, "osx-x64": {} },
感謝各位對.net core的支援!