TeamCity中多项目.NET解决方案的CI,使用SOA构建和交付的问题解决方案

141次阅读
没有评论

问题描述

遇到了一个问题,他在尝试使用TeamCity(TC)进行CI(持续集成)和Octopus Deploy(OD)进行CD(持续交付)时,面临一些部署问题。他最初在TC中设置了从版本控制系统中拉取最新代码、构建解决方案,并在Dev服务器上部署为.zip文件,但在尝试使用OD将解决方案部署到IIS时遇到了问题。有人告诉他应该让TC从解决方案创建多个包,供OD选择。他不知道如何做这件事,希望能得到解决方案。

解决方案

请注意以下操作可能需要根据具体情况进行调整,并在执行前备份数据。

方案1:使用OctoPack创建NuGet包

  1. 首先,为要打包的每个IIS网站创建一个.nuspec文件。这可以通过安装OctoPack并按照相关文档创建文件来完成。具体步骤如下:
  2. 安装OctoPack并阅读完整的文档
  3. 在每个.csproj文件旁边创建一个空的文本文件,文件名与.csproj文件相同。例如,如果.csproj文件名为MyApp.API.csproj,则创建一个名为MyApp.API.nuspec的空文本文件。
  4. 在每个.nuspec文件中粘贴以下模板,并根据项目进行相应的自定义:
    “`xml

Sample.Web
Your Web Application
1.0.0
Your name
Your name
http://yourcompany.com
http://yourcompany.com
false
A sample project
This release contains the following changes…

``
- 更新TeamCity配置,将
/p:RunOctoPack=true添加到msbuild命令行。
- 使用以下msbuild参数发布你的包:
-
/p:OctoPackPublishPackageToHttp=http://your.octopusserver.com/nuget/packages-/p:OctoPackPublishApiKey=API-ABCDEFGMYAPIKEY`

方案2:手动部署

如果方案1中的OctoPack不适用或需要更多灵活性,你可以手动部署。以下是一种手动部署的方法:
1. 在IIS中手动部署每个项目。确保每个项目的路径和设置与你的要求一致。
2. 使用TeamCity的自定义脚本步骤来自动执行部署操作。
– 使用docker exec或其他方法等待每个IIS项目完全启动。
– 使用msdeploy等工具将打包好的代码文件部署到IIS中。

请根据你的具体项目和需求选择适合的解决方案,确保在执行部署操作前进行充分测试。

结论

通过使用OctoPack创建NuGet包或手动部署的方式,你可以实现TC生成多个包供OD选择并部署到IIS中。请根据项目的具体需求和情况选择合适的解决方案。如果需要更多的帮助,可以参考OctoPack的官方文档或咨询相关领域的专家。希望这些解决方案能帮助你成功设置这个项目并实现持续交付。

正文完