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

C# Wix安装程序如何区分目标版本?,c#,visual-studio-2012,wix,wix3.8,C#,Visual Studio 2012,Wix,Wix3.8,我在Visual Studio中的C#项目将通过Wix安装。我有两个目标版本:演示版和发布版。我想区分这些版本,并在产品名称中添加后缀“Demo”: #if Demo <?define Suffix = "(Demo)"?> #endif <Product [...] Name="MyApp $(var.Suffix)" [...] > #如果演示 #恩迪夫 如何实现这一点?使用以下代码,您可以基于配置MSBuild属性定义producttargetWiX变量:

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

#if Demo
  <?define Suffix = "(Demo)"?>
#endif

<Product [...] Name="MyApp $(var.Suffix)" [...] >
#如果演示
#恩迪夫

如何实现这一点?

使用以下代码,您可以基于
配置
MSBuild属性定义
producttarget
WiX变量:

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

我自己找到了解决办法。我可以使用
var.ProjectName.Configuration
和Wix的预处理器来区分演示版和发行版

这是我的开关:

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

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

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

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