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

从MacOS自动部署.NET应用至Azure Windows VM上的IIS

从MacOS自动化发布.NET应用到Azure Windows VM的IIS方案

方案1:脚本化FTP上传(复用现有FTP流程)

既然你已经能通过FTP上传文件,直接把发布+上传流程封装成自动化脚本即可。Mac上可以用lftp(支持批量操作的命令行FTP工具)实现:

  1. 安装lftp:brew install lftp
  2. 编写Shell脚本(比如命名为deploy.sh):
# 1. 发布.NET应用到本地目录
dotnet publish -c Release -o ./publish

# 2. 批量上传发布文件到VM的IIS网站物理路径
lftp -u 你的FTP用户名,你的FTP密码 ftp://你的VM公网IP << EOF
mirror -R ./publish/ /你的IIS网站物理路径/
bye
EOF

# 可选:远程重启IIS应用池(需先在Mac安装PowerShell Core)
pwsh -Command "Invoke-Command -ComputerName 你的VM公网IP -Credential (Get-Credential) -ScriptBlock { Restart-WebAppPool -Name '你的应用池名称' }"
  1. 给脚本添加执行权限:chmod +x deploy.sh,之后直接运行./deploy.sh就能完成一键发布。

方案2:Azure DevOps Pipeline全流程自动化

借助Azure DevOps实现代码提交后自动构建+部署,无需本地手动操作:

  • 构建阶段:选择微软托管的Mac代理(或配置自己的Mac作为私有代理),执行dotnet publish生成发布包。
  • 部署阶段:
    1. 使用FTP Upload任务将发布包上传至VM的IIS网站目录。
    2. 添加PowerShell on Target Machines任务,通过WinRM连接Windows VM,执行应用池重启命令:Restart-WebAppPool -Name '你的应用池名称'。
  • 配置代码提交触发器后,每次推送代码都会自动触发发布流程。

方案3:基于OpenSSH的Rsync增量同步

如果你的Azure Windows VM已开启OpenSSH服务(Windows 10/Server 2019及以上版本默认支持),可以用Rsync实现高效的增量上传:

  1. 确保Mac上已安装Rsync(一般自带,缺失的话执行brew install rsync)。
  2. 编写同步脚本:
# 发布应用到本地目录
dotnet publish -c Release -o ./publish

# 增量同步发布文件到VM的IIS目录
rsync -avz ./publish/ 你的VM用户名@你的VM公网IP:/c/inetpub/wwwroot/你的网站目录/

# 远程重启应用池
pwsh -Command "Invoke-Command -ComputerName 你的VM公网IP -Credential (Get-Credential) -ScriptBlock { Restart-WebAppPool -Name '你的应用池名称' }"

Rsync仅传输变化的文件,比FTP更高效,适合频繁发布的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 16:32:35