You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure DevOps将.NET Core控制台应用部署至Windows虚拟机

我来帮你捋清楚怎么在Azure DevOps里实现和Visual Studio文件系统发布一样的效果,把.NET Core控制台应用部署到本地虚拟机(On Prem VM)的指定文件夹结构中。既然你已经有了CI构建流水线,接下来重点是搭建发布(Release)流水线来完成部署,具体操作步骤如下:

1. 先给本地虚拟机部署Azure DevOps代理

要让Azure DevOps能直接操作你的本地虚拟机,最靠谱的方式是在虚拟机上装一个Azure DevOps代理:

  • 登录Azure DevOps组织,进入「项目设置」→「代理池」,新建一个代理池(或者用默认池),然后按照页面提示的步骤下载代理安装包到虚拟机上。
  • 安装过程中把代理注册到你的组织和目标代理池里,确保代理运行时拥有读写目标文件夹的权限(比如用管理员身份运行代理服务)。
2. 创建发布流水线并关联CI工件
  • 进入Azure DevOps的「发布」模块,点击「新建发布流水线」,选择「空作业」模板。
  • 切换到「工件」选项卡,点击「添加」,选择你的CI构建流水线作为源,这样发布流水线就能拿到CI阶段生成的应用构建/发布产物。
3. 添加部署任务实现文件复制

接下来在发布作业里添加任务,模拟VS文件系统发布的文件同步逻辑:

  • 如果你的CI流水线还没做发布操作:先添加DotNetCoreCLI任务,命令选择publish,配置好你的项目路径,设置发布输出目录(比如$(Build.ArtifactStagingDirectory)/publish),确保生成的是可以直接运行的发布包。
  • 核心:复制文件到虚拟机目标路径:添加复制文件(Copy Files)任务:
    • 源文件夹:填写CI生成的发布文件所在路径(比如$(Build.ArtifactStagingDirectory)/publish,如果是从工件拉取,就是$(System.DefaultWorkingDirectory)/你的工件名称/publish)
    • 目标文件夹:填写你想要应用驻留的虚拟机本地文件夹路径(比如D:\ProductionApps\MyConsoleApp\v2.1,注意这是虚拟机上的本地路径,不是网络共享路径)
    • 勾选「复制子文件夹」选项,这样能完整保留应用的文件结构。
  • (可选)如果需要重启应用或者做后续校验,可以添加命令行或PowerShell任务,执行比如停止旧进程、启动新应用的脚本。
4. 触发并验证部署
  • 保存发布流水线配置,点击「创建发布」,选择对应的CI构建版本,触发部署流程。
  • 查看部署日志,如果有报错,优先检查代理是否正常运行、目标文件夹权限是否足够、源路径是否匹配CI的输出结构。

额外注意点

  • 确保目标虚拟机上已经安装了对应版本的.NET Core运行时,否则应用无法启动。
  • 如果虚拟机和Azure DevOps代理不在同一网络,也可以用WinRM远程执行任务,但安装代理是最稳定直接的方式。

内容的提问来源于stack exchange,提问作者MAK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 14:27:49