WixSharp:是否可以将 Product(Msi)-Name 设置为动态的?

WixSharp: Is it Possible to set the Product(Msi)-Name dynamic?

对于我的 WPF 项目,我想使用 WixSharp 创建一个安装程序。 但我也想安装具有不同名称和配置文件(DEV、TEST、LIVE)的同一个项目。

这可能吗?如何实现?
每次安装都需要不同的项目指南吗?
如果不可能:是否有解决方法?

感谢

是的,Wix & Wixsharp 是可能的。你需要什么:

  1. 添加 CustomAction before ValidateProductID
  2. 在会话中更改 ProductName 属性

CustomAction 托管代码示例:

new ManagedAction(
    RenameProductName,
    Return.ignore,
    When.Before,
    Step.ValidateProductID,
    Condition.Always)
    {
        Impersonate = false,
        ActionAssembly = System.Reflection.Assembly.GetExecutingAssembly().Location
    };

CustomAction代码来源:

[CustomAction]
public static ActionResult RenameProductName(Session session)
{
    session["ProductName"] = "My new product name";
    return ActionResult.Success;
}