从Powershell构建MSI包



我们正在设置新的Azure DevOps管道,将我们(可怕的)旧软件部署到我们的专用服务器。我们的目标是使用修改后的GIT流程过程来为开发,舞台以及生产(或发布)服务器构建和部署我们的软件。我们正在使用蛋糕脚本和powershell脚本来构建软件的不同部分。

我的软件经理的要求之一是为我们的软件构建MSI软件包(至少在我们版本的新版本时为生产构建)。从中出现了两个问题:

1)后端软件由几个项目组成,彼此之间具有各种怪异的依赖关系(以及外部SSIS项目,我们需要将其视为我无法控制的项目之外的"黑匣子"在)和1个可执行文件中使用了大多数,但并非来自其他项目构建的所有DLL。

前端软件是一个Sitecore项目,它只是一堆DLL和文件,需要通过IIS重新启动从一个地方复制到另一个地方以刷新服务器。

后端和前端可能会有单独的设置项目。但是在每个设置项目中,我是否只添加所有已构建项目的输出,并希望最好地将它们都放入MSI安装上的正确输出文件夹中?

2)如何通过Cake Build和/PowerShell实例化设置项目的构建(安装程序的项目)?我想确保这仅适用于我们从主分支构建的发行版本。我需要知道一个Azure工具吗?

请理解,因为这是我的第一个完整的DevOps实施,我在学校10年以来就没有建立.NET安装程序包,而且我的PowerShell技能很烂(来自网络开发/Linux World)。

Windows Installer XML(Wix Toolset)是一种构建MSIS的语言/编译器。它具有MSBUILD/Visual Studio集成支持。它可以很容易地在Azure Devops管道中构建,并且不需要蛋糕或Powershell做。

我有一个名为工业强度Windows Installer XML(ISWIX)的开源项目,该项目在Wix之上构建,并提供项目模板和图形设计人员,以协助大多数Wix开发。当您超越ISWIX提供的内容时,您仍然可以直接撰写Wix来满足您的需求。我有一些教程:

https://github.com/iswix-llc/iswix-tutorials

ISWIX项目模板具有内置版本控制和主要升级模式,它们会自动与Azure Devops集成。这些都在教程中解释了。

您承担的一项非常大的任务。有兴趣的人提供咨询服务。

最新更新