1

我们有一个由多个项目组成的解决方案。有些项目是 windows 任务,有些是 windows 服务,有些是在远程服务器上运行的 mvc 网站。在这台服务器上,我们目前正在将 TeamCity 实现为 CI 服务器,以自动化我们的构建和部署。到目前为止,这些项目都部署在同一台服务器上。构建、测试步骤等工作正常,但我不确定如何部署任务和服务。所有关于这个主题的教程(至少我见过的)都只涉及网站的部署。

最明显的方法是运行一个powershell脚本的构建后步骤,该脚本正在卸载当前正在运行的windows服务,删除旧服务,复制新的dll并再次启动服务。Windows 任务文件可以简单地直接替换为新版本。

但是,我不喜欢这个解决方案,感觉很生硬,如果部署服务器是远程的,可能很难实现。

有没有人对如何进行部署有更好的建议?

祝你今天过得愉快!

4

3 回答 3

3

尝试查看 Octopus depoy:http ://octopusdeploy.com/ 。您可以轻松地将其与 TeamCity 集成。它具有明星/停止服务的能力等等。此外,它使用 nuget 包。

于 2013-04-16T20:09:41.523 回答
1

您也可以通过 Web 部署工具部署 windows 服务。您所要做的就是使用(卸载/安装和启动/停止服务)和(部署服务)提供程序创建manifest.xml文件。runCommanddirPath

我的清单文件也部署了数据库和网站,如下所示:

<sitemanifest>
  <dbDacFx path='$dbSource' />
  <runCommand path='$presync' waitInterval='30000'/>
  <dirPath path='$winSource' />
  <runCommand path='$postsync' waitInterval='30000'/>
  <IisApp path='$webSource' managedRuntimeVersion='v4.0'/>
  <setAcl path='$webSource' setAclResourceType='Directory'/>
  <setAcl path='$webSource' setAclResourceType='Directory' setAclUser='anonymousAuthenticationUser'/>
</sitemanifest>

它是由 Psake 中的构建脚本生成的,但您可以按照自己的意愿进行操作。

我写了两篇关于这个主题的博客,但都是捷克语的。

希望,有东西可以帮助你。

于 2013-04-17T07:54:51.683 回答
0

Inedo 的 BuildMaster可以使用BuildMaster TeamCity Extension在 TeamCity 停止的地方继续工作。有一个免费版本可能会满足您的要求。

当我们使用 BuildMaster 构建/部署 BuildMaster 时(在构建安装程序之前),我们必须解决自己的问题,如果您查看 BuildMaster 详细信息(Inedo.com > Support > Specifications > BuildMaster,您可以准确地看到我们如何停止/部署/启动 Windows 服务。

于 2013-04-17T02:42:05.200 回答