Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在Azure DevOps中为Wix MSI文件生成GUID_.net_Git_Wix_Azure Devops_Guid - Fatal编程技术网

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

.net 在Azure DevOps中为Wix MSI文件生成GUID,.net,git,wix,azure-devops,guid,.net,Git,Wix,Azure Devops,Guid,我正在为web服务器应用程序和Sitecore前端应用程序设置Wix安装程序。我的问题不是针对web服务器或Sitecore的。我的问题是Wix以及如何在连续交付中使用它 1) Wix需要每个文件和产品本身的guid。我是否需要在每次生成时更新Wix文件中的每个GUID?在Git回购中,这可能会有很多变化 2) 如果在我的CD服务器(Azure DevOps)上的每个分支(开发、暂存和主分支)进行构建时,我必须更新GUID,那么如何使用Azure DevOps中的新GUID更新Wix文件 我们真

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

1) Wix需要每个文件和产品本身的guid。我是否需要在每次生成时更新Wix文件中的每个GUID?在Git回购中,这可能会有很多变化

2) 如果在我的CD服务器(Azure DevOps)上的每个分支(开发、暂存和主分支)进行构建时,我必须更新GUID,那么如何使用Azure DevOps中的新GUID更新Wix文件

我们真正想要的是能够在3台服务器(dev、staging和master)上构建、发布、部署并可能回滚到上一个好版本。我原本以为我们会在部署步骤中复制文件,但我被要求构建一个MSI安装程序,因为它更干净,并且可以更容易地回滚错误的安装。如果你认为Wix是一个错误的工具,或者有一个更好的过程,也请说出来。Wix看起来确实过于冗长:基本上每个文件都有一个组件,每个文件都有生成的guid

产品代码、包装代码、升级代码:可用于组件(大多数组件)
使用auto-guid可以显著降低WiX源代码的复杂性

您需要管理的
产品代码和
升级代码。在大多数情况下,你会
更改每个版本的产品代码和包装代码。包代码可以设置为在生成时自动生成。事实上,如果只使用主要升级,产品代码也可以。关于产品、包装和升级代码


您好WiX:有一个。它应该向您展示使用WiX和visualstudio编译工作设置的基础知识。(有许多指向示例的链接)


自动魔法:您可以使用WiX的自动guid功能,如下所述:。对于WiX能够神奇地自动管理GUID的组件,只需省略硬编码GUID

理解组件guid:对组件guid如何工作的实用描述可能有助于更好地理解它们:

以下是其他信息来源:

魔术师罗布·门辛

Flexera


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

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


某些链接