我已经添加了一个步骤来将我们的数据库迁移到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而不是值。 –