【发布时间】:2014-09-15 10:36:57
【问题描述】:
这 2 个项目需要通过 VPN 部署到多个环境。 其他环境将随着时间的推移而需要。
当前部署策略:
使用 CCNet 进行构建自动化。
网络应用程序:
- Web 部署包
- MSBuild
- 网络部署
Windows 服务:
- MsBuild
- RoboCopy + 净份额
- 用于(卸载)安装启动/停止服务的 MSBuild 扩展包
当前策略的问题:
- Web Deploy 需要安装在所有目标 Web 服务器上。
- IIS 配置:(远程管理服务、用户、委托规则)
- 服务文件复制和安装需要网络共享
- MSBuild 扩展包依赖项
- 为服务安装禁用 UAC
总的来说,这似乎并没有那么糟糕,但考虑到这需要针对很多环境进行设置,它很快就会成为一个问题。
同时创建网络共享、禁用 UAC、IIS 远程管理服务可能会被视为安全问题。
正在寻找一种方法来部署 Web 应用程序以及配置要求较低的 Windows 服务。
替代方案?
CCNET 构建发布者
而不是 Web 部署包。
将删除 Web Deploy 依赖项,但不确定它是否可以在 VPN 上运行,并且看不到指定用户名/密码的方法。
sc.exe
安装/卸载服务。
将删除 MSBuild 扩展包和 Robo Copy 依赖项。
这似乎在域计算机上工作,但也不确定 VPN 连接和 UAC 在这种情况下似乎也是一个问题。
Powershell?
更新:
设法使用 powershell 安装服务: http://www.geoffhudik.com/tech/2012/3/22/install-a-windows-service-remotely-with-powershell.html
一种方法。在 Windows 7 上使用 MapNetworkDrive 创建驱动器共享时出现问题,因此我必须使用 net use 执行此操作
仍在考虑替代方案。
【问题讨论】:
标签: .net deployment msbuild cruisecontrol.net webdeploy