设置Microsoft应用程序的持续集成和持续部署

时间:2017-05-30 07:18:18

标签: .net jenkins continuous-integration nexus continuous-deployment

在我的组织中,我们拥有200多个Microsoft桌面和Web应用程序。我正在尝试为这些应用程序设置持续集成和持续部署(我已经为Java应用程序做了)。我们已经在企业Github,Jenkins,Nexus,XL-Deploy和XL-Release上安装了以下工具。我们还开发了一个由Jenkins调用的groovy框架,并对Jenkins中的所有自动作业进行处理,并将生成的工件推送到nexus中。

我想设置同类解决方案,并希望使用与Microsoft相同的工具集。

我浏览了Nexus文档并且没有找到任何方法来存储生成的工件(.exe或MSI)它只支持Nuget包,我不确定它们是什么以及如何使用它们? / p>

我可以使用Jenkins执行shell中的msbuild.exe构建我的项目解决方案文件,并能够以.exe和MSI的形式生成工件。

现在我几乎没有问题:

- 我应该如何以及在何处对生成的工件(.exe和MSI)进行版本化和存储,以及如何在目标主机上部署桌面应用程序(因为我们都知道我们需要双击.exe才能安装这一点)。

- 我应该如何处理网络.net应用程序?

- 什么是nuget包,我可以将它们用于桌面应用程序部署而不是MSI吗?我需要修改代码中的任何内容吗?

PS:我知道TFS是解决方案,但由于成本限制,我们无法在我们的组织中使用它。

2 个答案:

答案 0 :(得分:1)

要上传非maven项目工件,例如zip,msi等,您可以使用Nexus Artifact Uploader。为此,需要创建maven类型的托管存储库,然后通过填充GAV参数将工件上传到此,并可以根据GAV参数检索工件。

要将工件部署到测试环境,请使用WinRM Client Plugin连接测试环境。

答案 1 :(得分:0)

我找到了解决方案:

我正在做的是,我使用msbuild命令行编译解决方案文件,这将为我生成.exes。生成exe后,我使用WIX实用程序将它们打包到MSI中。一旦生成了MSI,我就使用linux mv命令和for循环对它们进行版本控制,我将它们推送到Nexus repo,使用maven命令传递GAV参数。