Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
Azure devops 如何从Azure DevOps构建.NET核心工作程序服务并将其部署到内部部署环境_Azure Devops_Continuous Deployment - Fatal编程技术网

Azure devops 如何从Azure DevOps构建.NET核心工作程序服务并将其部署到内部部署环境

Azure devops 如何从Azure DevOps构建.NET核心工作程序服务并将其部署到内部部署环境,azure-devops,continuous-deployment,Azure Devops,Continuous Deployment,我有一个worker service应用程序,通过复制其二进制文件并使用PowerShell通过“New service”命令安装,我正在dev服务器上手动安装该应用程序 我们正在研究CI/CD以自动化构建和部署其人工制品。我不知道如何将“构建”文件从Azure获取到内部部署服务器,我已经查看了部署组之类的内容,但这些似乎不是用于复制的发布工具中的选项。我已经看过“复制”工具和构建工具,但是我被卡住了 有些人似乎提到使用“经典”,我想我使用的是YAML,而不是经典 有人能给我指出正确的方向吗?使

我有一个worker service应用程序,通过复制其二进制文件并使用PowerShell通过“New service”命令安装,我正在dev服务器上手动安装该应用程序

我们正在研究CI/CD以自动化构建和部署其人工制品。我不知道如何将“构建”文件从Azure获取到内部部署服务器,我已经查看了部署组之类的内容,但这些似乎不是用于复制的发布工具中的选项。我已经看过“复制”工具和构建工具,但是我被卡住了

有些人似乎提到使用“经典”,我想我使用的是YAML,而不是经典


有人能给我指出正确的方向吗?

使用经典用户界面对我来说更简单(最后也是YAML)

您需要的是:

  • 将Azure部署代理安装到您的计算机上,以便它们将“成为”部署池的成员。您可以通过部署池菜单生成安装脚本,该菜单应作为本地管理员在计算机上运行
  • (我假设您有一个项目)在项目级别上创建一个与该部署池链接的部署组
  • 如果您还没有生成二进制文件的构建,请创建一个
  • 创建一个新版本
  • 在该版本中创建一个阶段
  • 打开stage,在stage名称旁边的顶部菜单上可以看到三个点。单击它,然后单击“添加部署组作业”->,这意味着通过使用前面提到的部署代理在本地计算机上运行东西
  • 编写部署任务或从市场上选择一些。通常看起来像复制文件->提取->替换变量中的一些标记->运行一些脚本或使用专用任务来安装应用程序
  • 以及安装windows服务的一点帮助(您可以完成此任务,但类似的任务已经存在)

    类似“$(ServiceName)”的变量由AzureDevops发布变量替代。您可以阅读有关变量用法的更多信息

    设置公共服务选项也可能很有用。我通常通过单独的powershell任务来完成:

    $serviceName = "$(ServiceName)"
    $failureDelay = [int] $(ServiceFailureDelayMs)
    $failureAction = "restart"
    $reset = [int] $(ServiceResetSeconds)
    
    $service = Get-Service $serviceName -ErrorAction SilentlyContinue
    
    if(!$service)
    {
        Write-Host "##vso[task.LogIssue type=warning;]Directory Windows Service '$serviceName' not found, skip."
        return
    }
    
    "Updating '$serviceName' service recovery options."
    
    sc.exe failure $service.Name actions= $failureAction/$failureDelay/$failureAction/$failureDelay/$failureAction/$failureDelay reset= $reset
    
    "Done."
    

    谢谢,这一切都是有意义的,这就是我所想的,我如何获得“经典ui”?完美的,谢谢,我现在将努力完成这项工作,看看我们能达到什么目的。虽然这项工作非常感谢克里斯托夫,这项工作做得很好,现在必须从开发人员那里着手设置windows服务。更多的阅读现在做:)也可以帮助你。如果您搜索或可以在计算机上运行powershell,则会有内置任务。需要一些脚本吗?
    $serviceName = "$(ServiceName)"
    $failureDelay = [int] $(ServiceFailureDelayMs)
    $failureAction = "restart"
    $reset = [int] $(ServiceResetSeconds)
    
    $service = Get-Service $serviceName -ErrorAction SilentlyContinue
    
    if(!$service)
    {
        Write-Host "##vso[task.LogIssue type=warning;]Directory Windows Service '$serviceName' not found, skip."
        return
    }
    
    "Updating '$serviceName' service recovery options."
    
    sc.exe failure $service.Name actions= $failureAction/$failureDelay/$failureAction/$failureDelay/$failureAction/$failureDelay reset= $reset
    
    "Done."