我有一些部署到多个 VM 的 WCF 服务。VM 是内部唯一网络的一部分,未加入域。有时我需要将二进制文件更新到最新版本。为此,我有一个 .bat 脚本。现在,我在每个 VM 上手动触发更新,我想通过 TeamCity 的按钮单击来自动交付。
我尝试从 powershell(来自 TeamCity 的远程作业)运行脚本,但配置安全问题有点痛苦,所以我放弃了它并返回到手动更新。后来我想在基础合约中添加一个新方法,比如
void Update(string fromBatFile);
WCF 服务将在单独的进程中调用该文件(例如通过 cmd.exe)并关闭其主机。bat 文件将执行更新并重新启动 WCF 主机。
这是一个好方法吗?WCF服务的持续交付有没有更好的解决方案?