我有一个Wix安装程序Product.msi
,它通过自定义操作启动setup.exe。当我通过命令提示符执行我的安装程序时,例如:
msiexec /i Product.msi /q
要么
msiexec /r Product.msi /q
要么
msiexec /x Product.msi
我想将/i
/r
/q
/x
个选项传递给setup.exe
是否可以通过Wix Toolset实现这一目标?
答案 0 :(得分:1)
您提到的标志都设置了MSI的属性,您可以在自定义操作中引用它们,转换为setup.exe所需的任何格式。
例如:
public static class VersionExtensions
{
public static string GetFileVersion(this Assembly assembly)
{
var value = assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false)
.OfType<AssemblyFileVersionAttribute>()
.SingleOrDefault();
return value != null ? value.Version : "?.?.?.?";
}
public static string GetCommonFileVersion()
{
var assembly = Assembly.GetAssembly(typeof(Common.Web.VersionExtensions));
var value = assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false)
.OfType<AssemblyFileVersionAttribute>()
.SingleOrDefault();
return value != null ? value.Version : "?.?.?.?";
}
对应/i
的值为false(如果产品尚未安装)。
Installed
对应/r
属性中的“修复”值。
WixUIInstallMode
对应/x
属性中的“删除”值。
WixUIInstallMode
(及其/q
和/qn
等修饰符)对应/qb
属性,该属性具有this link中的以下值。
UILEVEL
如果您不熟悉传递值并在自定义操作中引用它们,则可以看到this answer。