简体   繁体   English

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

[英]Setting up Continuous integration and continuous deployment for Microsoft Applications

In my organization we have more than 200 Microsoft desktop and web applications. 在我的组织中,我们有200多个Microsoft桌面和Web应用程序。 I am trying to setup the continuous integration and Continuous deployment for those application(I already did for Java applications). 我正在尝试为那些应用程序设置持续集成和持续部署(我已经为Java应用程序完成过)。 We already have the following tools at place Enterprises Github, Jenkins, Nexus, XL-Deploy and XL-Release. 我们已经在企业Github,Jenkins,Nexus,XL-Deploy和XL-Release中使用了以下工具。 We have also developed a framework in groovy that is invoked by Jenkins and dose all the automatic job creations in Jenkins and push generated artifact into nexus. 我们还开发了Groovy框架,该框架由Jenkins调用,并在Jenkins中分配了所有自动创建的工作,并将生成的工件推入了联系。

I want to setup the homogeneous solution and want to use the same tools set for the Microsoft. 我想设置同类解决方案,并希望使用与Microsoft相同的工具集。

I go through the Nexus documentation and didn't find any way to store the generated artifact(.exe or MSI) It only support the Nuget packages and I am not sure what are they and how to use them? 我浏览了Nexus文档,找不到任何存储生成的工件(.exe或MSI)的方法。它仅支持Nuget程序包,我不确定它们是什么以及如何使用它们?

I am able to build my project solution file using msbuild.exe in Jenkins execute shell and able to generate the artifact in the form of .exe and MSI. 我能够在Jenkins execute shell中使用msbuild.exe来构建我的项目解决方案文件,并能够以.exe和MSI的形式生成工件。

Now I have few questions: 现在我有几个问题:

-- How and where should I versioned and store the generated artifact(.exe and MSI) and how can I deploy my desktop applications on the targeted host(as we all know we need to double click on the .exe to install that). -我应该如何以及在何处进行版本控制和存储生成的工件(.exe和MSI),以及如何在目标主机上部署桌面应用程序(众所周知,我们需要双击.exe进行安装)。

-- How should I proceed with the web .net applications? -我应该如何继续使用Web .net应用程序?

-- What is nuget package and can I use them for desktop applications deployment instead of MSI and do I need do modify any thing in my code for doing that ? -什么是nuget软件包,我可以将其用于桌面应用程序部署而不是MSI,并且需要修改代码中的任何内容吗?

PS: I know TFS is the solution but we can not use that in our organization because of cost constraint. PS:我知道TFS是解决方案,但是由于成本限制,我们不能在组织中使用它。

To upload the non-maven project artifacts such as zip, msi etc you can use Nexus Artifact Uploader . 要上传非Maven项目工件(例如zip,msi等),您可以使用Nexus Artifact Uploader For this to work it is mandate to create maven type hosted repository and after that, upload the artifacts to this by populating GAV parameters and can be retrieve the artifacts based on the GAV parameters. 为此,必须创建Maven类型的托管存储库,然后,通过填充GAV参数将工件上传到该存储库,并可以基于GAV参数检索工件。

To deploy the artifacts to the test environments use WinRM Client Plugin to connect test environments. 要将工件部署到测试环境,请使用WinRM Client Plugin连接测试环境。

I find the solution for this: 我找到了解决方案:

What I am doing is, I compiling the the solution file using msbuild command line and this will generate the .exes for me. 我正在做的是,我使用msbuild命令行编译解决方案文件,这将为我生成.exes。 Once the exe's are generated I am packaging them into MSI using the WIX utility. 生成exe后,我将使用WIX实用程序将它们打包到MSI中。 once the MSI is generated I am versioning them using the linux mv command and a for loop the I am pushing them into Nexus repo using maven command passing the GAV parameters. 生成MSI后,我将使用linux mv命令和for循环对它们进行版本控制,然后使用传递GAV参数的maven命令将它们推入Nexus存储库。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM