在Azure DevOps中为Wix MSI文件生成GUID

问题描述 投票:2回答:1

我正在为Web服务器应用程序和Sitecore前端应用程序设置Wix安装程序。我的问题不是特定于Web服务器或Sitecore。我的问题在于Wix以及如何在持续交付中使用它。

1)Wix需要每个文件和产品本身的GUID。我是否需要在每次构建时更新Wix文件中的每个GUID?在Git仓库中,这可能会发生很多变化。

2)如果我必须在我的CD服务器(Azure DevOps)上的每个分支(dev,staging和master)进行构建时更新GUID,如何使用Azure DevOps中的新GUID更新Wix文件?

我们真正想要的是能够在我们的3台服务器(开发,登台和主服务器)中的每一台服务器上进行建立,发布,部署和潜在回滚以获得最佳版本。我原本以为我们只是在部署步骤中复制文件,但是我被要求构建一个MSI安装程序,因为它更干净,可以更容易地回滚错误的安装。如果您认为Wix是错误的工具或者有更好的流程,请同时说出来。 Wix真的看起来过于冗长:基本上每个文件的组件都为每个文件生成了GUID。

.net git wix azure-devops guid
1个回答
0
投票

产品,包装,升级代码:您可以将WiX's auto-GUIDs用于组件(对于大多数组件)。 Using auto-GUIDs significantly reduces WiX source complexityIs it safe

你需要管理的Product CodeUpgrade Code。在大多数情况下,您可以更改每个版本的产品代码和包装代码。可以将包代码设置为在构建时自动生成。事实上,如果您仅使用主要升级,产品代码也可以。 Nice summary from Flexera关于产品,包装和升级代码。


你好WiX:有一个WiX Visual Studio Hello World example here。它应该向您展示使用WiX和Visual Studio编译工作设置的基础知识。 There are also a bunch of quick start tips for WiX here(许多样本链接)。


Auto-Magic:您可以使用WiX的自动引导功能,如下所述:Syntax for guids in WIX?。您只需省略WiX能够自动管理GUID的组件的硬编码GUID。

了解组件GUID:这个组件GUID如何工作的实用描述可能有助于更好地理解它们:Change my component GUID in wix?

以下是其他信息来源:

Rob Mensching,WiX创建者:

的Flexera:


Azure DevOps:我不使用这个环境,但是如果你使用自动组件GUID,那么你通常只需要为每个构建更新产品代码和产品版本 - 我可能忘记了一些东西。您可以将包代码设置为在构建时自动生成,因为它仅对每个文件都是唯一的(为每个构建创建的新文件,因此只需自动生成)。许多人还将产品代码设置为自动生成,因为它们仅使用主要升级。

我从来没有真正需要它,但你应该能够将值传递给WiX源中的编译器变量,这意味着你可以将新版本和产品代码(或只是版本)传递给candle.exelight.exe。另见下面的链接(msbuild)。将尽快尝试挖掘更好的一个。


一些链接:

© www.soinside.com 2019 - 2024. All rights reserved.