我已經添加了一個步驟來將我們的數據庫遷移到Octopus Deploy中的我們的開發服務器。我試圖創建一個PowerShell腳本來做到這一點。在用於此部署的Nuget包中,我的可執行文件migrate.exe
位於\Resources\
。試圖在章魚部署中的powershell腳本中執行exe
我寫劇本是這樣的:
$dbServer = $OctopusParameters["DBServer"]
$dbUser = $OctopusParameters["DBUser"]
$dbPass = $OctopusParameters["DBPass"]
Write-Host ("Running migration " + $dbServer)
$CMD = ".\Resources\migrate.exe"
$arg1 = '--assembly "Database\bin\Debug\Database.dll" --provider sqlserver2014'
$arg2 = '--connection "data source=$dbServer;initial catalog=MyDB;user id=$dbUser;password=$dbPass;persist security info=true;MultipleActiveResultSets=True" -o'
& $CMD $arg1 $arg2
Write-host("Migration finished " + $dbServer)
但我得到這個消息:
&:術語」 \資源\ migrate.exe --assembly 「數據庫\ bin \ Debug \ Database.dll「--provider sqlserver2014 --connection」data source = $ dbServer; initial catalog = ClarkChains; user id = $ dbUser; password = $ dbPass; persist security info = true; MultipleActiveResultSets = True 「-o」不被識別爲名稱 cmdlet,函數,腳本文件或可操作程序。
我四處尋找關於如何正確調用可執行文件的示例。
'Write-Host(Get-Location).Path' - 會告訴你你在章魚部署目標機器中的位置。 –
聽起來像.exe包含在軟件包中。如果是這種情況,可以使用內置的章魚變量來檢索安裝路徑和設置位置。另外請注意,你在單引號字符串中有powershell變量,這就是爲什麼你的錯誤消息有$ dbServer而不是值。 –