WixSharp:是否可以将 Product(Msi)-Name 设置为动态的?
WixSharp: Is it Possible to set the Product(Msi)-Name dynamic?
对于我的 WPF 项目,我想使用 WixSharp 创建一个安装程序。
但我也想安装具有不同名称和配置文件(DEV、TEST、LIVE)的同一个项目。
这可能吗?如何实现?
每次安装都需要不同的项目指南吗?
如果不可能:是否有解决方法?
感谢
是的,Wix & Wixsharp 是可能的。你需要什么:
- 添加 CustomAction before ValidateProductID
- 在会话中更改 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;
}
对于我的 WPF 项目,我想使用 WixSharp 创建一个安装程序。 但我也想安装具有不同名称和配置文件(DEV、TEST、LIVE)的同一个项目。
这可能吗?如何实现?
每次安装都需要不同的项目指南吗?
如果不可能:是否有解决方法?
感谢
是的,Wix & Wixsharp 是可能的。你需要什么:
- 添加 CustomAction before ValidateProductID
- 在会话中更改 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;
}