如何 Wix 安装程序区分目标版本

本文关键字:目标 版本 程序区 Wix 安装 如何 | 更新日期: 2023-09-27 18:31:40

我在Visual Studio中的C#项目将通过Wix安装。我有两个目标版本:演示和发布。我想区分这些版本,并在产品名称中添加后缀"Demo":

#if Demo
  <?define Suffix = "(Demo)"?>
#endif
<Product [...] Name="MyApp $(var.Suffix)" [...] >

我怎样才能使工作成为这个?

如何 Wix 安装程序区分目标版本

使用以下代码,您可以根据 MSBuild 属性定义producttarget WiX 变量Configuration

<!-- Somewhere in .wixproj -->
<PropertyGroup>
    <DefineConstants Condition=" '$(Configuration)' == 'Debug' ">$(DefineConstants);producttarget= (Demo)</DefineConstants>
    <DefineConstants Condition=" '$(Configuration)' == 'Release' ">$(DefineConstants);producttarget=</DefineConstants>
</PropertyGroup>

然后在Product声明中使用producttarget

<Product Id="*"
         Name="SetupProject1$(var.producttarget)"
         Language="1033"
         Version="1.0.0.0"
         Manufacturer="Manufacturer1"
         UpgradeCode="41169d90-ca08-49bc-b87b-4b74f1f50d0e">

我自己得到了一个解决方案。我可以使用var.ProjectName.Configuration和Wix的预处理器区分演示和版本。

  • 项目引用变量
  • 预处理

这是我的开关:

<?if $(var.ProjectName.Configuration) = Demo ?>
    <?define Suffix = "(Demo)" ?>
<?else ?>
    <?define Suffix = "" ?>
<?endif ?>

将后缀 (Demo) 添加到我的产品:

<Product [...] Name="MyApp $(var.Suffix)" [...] >