安裝 Service Fabric SDK,會在本機 C:\Program Files\Microsoft SDKs\Service Fabric\Tools\PSModule\ServiceFabricSDK 生成部署腳本,以下圖:shell
用VS建立一個 Service Fabric 應用後,有一個部署腳本,位置在 [應用名]\Scripts\Deploy-FabricApplication.ps1,本文正是用該腳本進行應用部署的,內部會判斷是全新部署或更新部署去調用上面對應的腳本。ide
本文配置文件使用方式是,在 ApplicationParameters中的xml 文件裏聲明配置變量並賦值,在 ApplicationPackageRoot\ApplicationManifest.xml 中用配置變量進行重寫,因此最終的配置都在 ApplicationParameters 目錄下。spa
配置變量不能用點分隔,推薦下劃線。xml
示例:blog
在 ApplicationParameters\Local.1Node.xml 中配置應用環境。ip
在 ApplicationPackageRoot\ApplicationManifest.xml 中定義應用環境變量,這裏變量名能夠與 ApplicationParameters\Local.1Node.xml 中定義的變量名要相同。部署
在 ApplicationPackageRoot\ApplicationManifest.xml 的 Actor 中重寫該配置it
在 XXXActor\PackageRoot\Config\Setting.xml 中接收配置io
VS右鍵將應用打包,打包輸出目錄能夠在VS Output窗口查看。集羣
打包後目錄結構以下所示:
將要部署的應用中的配置文件和部署腳本也複製到打包目錄,組成以下結構:
用管理員權限打開Powershell,切換到路徑 SfPkg下,執行如下命名:
鏈接到本地集羣:
Connect-ServiceFabricCluster localhost:19000
或經過修改腳本跳過主動鏈接集羣的步驟,只須要在 Deploy-FabricApplication.ps1 以下位置,增長 $global:clusterConnection = $clusterConnection
部署應用:
.\Deploy-FabricApplication.ps1 -ApplicationPackagePath .\pkg -PublishProfileFile .\PublishProfiles\Local.1Node.xml -DeployOnly:$false -ApplicationParameter:@{} -UnregisterUnusedApplicationVersionsAfterUpgrade $false -OverrideUpgradeBehavior 'None' -OverwriteBehavior 'SameAppTypeAndVersion' -SkipPackageValidation:$false -ErrorAction Stop
部署順利就能夠看到以下結果:
到這,Service Fabric Application 用 Powershell 讀取指定配置文件部署到本地集羣的方案就結束了。