Visual studio VSTS联机自动生成找不到代理
对于在vsts上手动构建的在线部署到azure,一切正常。 但当我从我的回购中触发时,同样的构建,我得到: 找不到具有以下功能的代理:msbuild、visualstudio、sqlpackage 如果我转到我的构建定义->常规选项卡Visual studio VSTS联机自动生成找不到代理,visual-studio,azure,azure-pipelines,Visual Studio,Azure,Azure Pipelines,对于在vsts上手动构建的在线部署到azure,一切正常。 但当我从我的回购中触发时,同样的构建,我得到: 找不到具有以下功能的代理:msbuild、visualstudio、sqlpackage 如果我转到我的构建定义->常规选项卡 托管VS2017代理中没有SqlPackage功能。我在此处提交用户语音: 解决方法是您可以通过PowerShell将sql包部署到azure param( [string]$publish_profile, [string]$path_to_sn
托管VS2017代理中没有SqlPackage功能。我在此处提交用户语音: 解决方法是您可以通过PowerShell将sql包部署到azure
param(
[string]$publish_profile,
[string]$path_to_snapshots,
[string]$database
)
$psPath=$PSScriptRoot
write-output $psPath
Add-Type -Path "$psPath\lib\Microsoft.SqlServer.Dac.dll"
$dacProfile = [Microsoft.SqlServer.Dac.DacProfile]::Load($publish_profile)
$dacService = new-object Microsoft.SqlServer.Dac.DacServices($dacProfile.TargetConnectionString)
$files = Get-ChildItem "$path_to_snapshots\*.dacpac"
Write-Output $path_to_snapshots
Write-Output $files.Length
foreach ($file in $files)
{
$fileName = $file.Name
Try
{
Write-output $fileName
$dp = [Microsoft.SqlServer.Dac.DacPackage]::Load($file.FullName)
$dacService.Deploy($dp, $database, $true)
Start-Sleep -s 300
}
Catch
{
Write-Host "$fileName deployment has been failed" -foregroundcolor "red"
$Error | format-list -force
Write-Host $Error[0].Exception.ParentContainsErrorRecordException;
Break
}
}
相关线程:托管VS2017代理中没有SqlPackage功能。我在此处提交用户语音: 解决方法是您可以通过PowerShell将sql包部署到azure
param(
[string]$publish_profile,
[string]$path_to_snapshots,
[string]$database
)
$psPath=$PSScriptRoot
write-output $psPath
Add-Type -Path "$psPath\lib\Microsoft.SqlServer.Dac.dll"
$dacProfile = [Microsoft.SqlServer.Dac.DacProfile]::Load($publish_profile)
$dacService = new-object Microsoft.SqlServer.Dac.DacServices($dacProfile.TargetConnectionString)
$files = Get-ChildItem "$path_to_snapshots\*.dacpac"
Write-Output $path_to_snapshots
Write-Output $files.Length
foreach ($file in $files)
{
$fileName = $file.Name
Try
{
Write-output $fileName
$dp = [Microsoft.SqlServer.Dac.DacPackage]::Load($file.FullName)
$dacService.Deploy($dp, $database, $true)
Start-Sleep -s 300
}
Catch
{
Write-Host "$fileName deployment has been failed" -foregroundcolor "red"
$Error | format-list -force
Write-Host $Error[0].Exception.ParentContainsErrorRecordException;
Break
}
}
相关线程:我将此Microsoft脚本的副本添加到我的管道中,该管道将返回代理上SQLPackage.exe的路径 写入时,返回的路径为: C:\Program Files\Microsoft SQL Server\150\DAC\bin\SqlPackage.exe
理论上,如果在任何时候位置发生了变化,那么应该只是将其更新到脚本报告的新位置 我将此Microsoft脚本的副本添加到我的管道中,该管道将返回代理上SQLPackage.exe的路径 写入时,返回的路径为: C:\Program Files\Microsoft SQL Server\150\DAC\bin\SqlPackage.exe
理论上,如果在任何时候位置发生了变化,那么应该只是将其更新到脚本报告的新位置 你使用的是相同的代理吗?我应该是,在vsts在线网站上按build-on和用git repo Checkin触发有点不同。是的,在触发时,似乎没有sqlpackage(我删除了数据库项目)也可以正常工作。它确实工作了1次,但大多数时候都失败了。我打赌这是他们新托管的VS2017服务器的一个bug。也许我可以在../\u admin/\u AgentQueue中添加一个功能?系统功能显示有关此主机提供的功能的信息,但我需要一个名称和值。有什么建议吗?这几乎奏效了:当我添加sqlpackage | C:\Program Files(x86)\Microsoft SQL Server\130\DAC\bin\sqlpackage.exe时,我得到了以下错误:无法从机器TASKAGENT9-0002上的注册表中找到DAC框架(sqlpackage.exe)的位置。您使用的是相同的代理吗,在vsts在线网站上按build on和用git repo checkinYeah触发有点不同,似乎在触发时没有sqlpackage(我删除了数据库项目)也可以正常工作。它确实工作了1次,但大多数时候都失败了。我打赌这是他们新托管的VS2017服务器的一个bug。也许我可以在../\u admin/\u AgentQueue中添加一个功能?系统功能显示有关此主机提供的功能的信息,但我需要一个名称和值。有什么建议吗?这几乎奏效了:当我添加sqlpackage | C:\Program Files(x86)\Microsoft SQL Server\130\DAC\bin\sqlpackage.exe时,我得到了以下错误:无法从机器TASKAGENT9-0002上的注册表中找到DAC框架(sqlpackage.exe)的位置