gpt4 book ai didi

wix 生成新的升级代码

转载 作者:行者123 更新时间:2023-12-05 08:43:49 26 4
gpt4 key购买 nike

我的项目需要能够同时安装 2 个或更多版本。据我所知,我找到的解决方案是为安装程序的每个版本更改升级代码。

但是我想自动执行此操作。在常规 GUID 中,我只使用“*”,但这不适用于升级代码。有没有办法在每个 Wix 预构建或任何其他解决方案中生成新的升级代码?

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<Bundle Name="Prog" Version="1.2.1.16" Manufacturer="Gilad Corporation" UpgradeCode="{7E71F945-BA46-4872-A6B2-AF992FFDF2D0}">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
<bal:WixStandardBootstrapperApplication LicenseFile="..\SetupProject\Gilad.rtf" />
</BootstrapperApplicationRef>
<Chain>
<!-- TODO: Define the list of chained packages. -->
<PackageGroupRef Id="Netfx45FullPackage" />
</Chain>
</Bundle>

最佳答案

只是为了回答“如何自动生成 UpgradeCode”的问题,如果你使用的是 msbuild,你可以在你的项目中做这样的事情:

<PropertyGroup>
<NewUpgradeCode>$([System.Guid]::NewGuid())</NewUpgradeCode>
</PropertyGroup>

<DefineConstants>NewUpgradeCode=$(NewUpgradeCode)</DefineConstants>

在 bundle 中:

<Bundle Name="!(bind.PackageName.Package)"
Version="!(bind.PackageVersion.Package)"
Manufacturer="!(bind.PackageManufacturer.Package)"
UpgradeCode="$(var.NewUpgradeCode)">

我实际上在一个类似模板的包中使用它来打包一些一次性包,我不希望它们相互关联。但是,我仍然希望他们有升级代码,以备日后需要升级时使用。

我不能说这是否是该用例的最佳解决方案,但似乎可行。

关于wix 生成新的升级代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23529029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com