Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio VSTS联机自动生成找不到代理_Visual Studio_Azure_Azure Pipelines - Fatal编程技术网

Visual studio VSTS联机自动生成找不到代理

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

对于在vsts上手动构建的在线部署到azure,一切正常。 但当我从我的回购中触发时,同样的构建,我得到:

找不到具有以下功能的代理:msbuild、visualstudio、sqlpackage

如果我转到我的构建定义->常规选项卡


托管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)的位置