使用Wix的技巧和提示有哪些?

  • 回答 (10)
  • 关注 (0)
  • 查看 (339)

我想知道在以下方面使用Wix的有效建议:

  • 设置Wix项目(布局、引用、文件模式)
  • 将Wix集成到解决方案中,并构建/发布过程
  • 为新安装和升级配置安装程序
  • 以及你想要分享的关于Wix的优点
liqoeiliqoei提问于
MH小夜雨时学生回答于

在退出对话框中添加一个复选框以启动应用程序或帮助文件

<!-- CA to launch the exe after install -->
<CustomAction Id          ="CA.StartAppOnExit"
              FileKey     ="YourAppExeId"
              ExeCommand  =""
              Execute     ="immediate"
              Impersonate ="yes"
              Return      ="asyncNoWait" />

<!-- CA to launch the help file -->
<CustomAction Id         ="CA.LaunchHelp"
              Directory  ="INSTALLDIR"
              ExeCommand ='[WindowsFolder]hh.exe IirfGuide.chm'
              Execute    ="immediate"
              Return     ="asyncNoWait" />

<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"
          Value="Launch MyApp when setup exits." />

<UI>
  <Publish Dialog  ="ExitDialog"
           Control ="Finish"
           Order   ="1"
           Event   ="DoAction"
           Value   ="CA.StartAppOnExit">WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT</Publish>
</UI>

如果你这样做,“标准”的外观不太对。复选框始终是灰色背景,而对话框为白色:

alt text http://www.dizzymonkeysign.com/blog/misc/adding-and-customizing-dlgs-in-wix-3/images/exit_dlg_1.gif

其中一种方法是指定自定义ExitDialog,并设置一个不同位置的复选框。这是可行的,但似乎只是为了改变一个控件的颜色。解决同样问题的另一种方法是后处理生成的MSI,将控制表中的X、Y字段更改为特定的复选框控件。javascript代码如下所示:

var msiOpenDatabaseModeTransact = 1;
var filespec = WScript.Arguments(0);
var installer = new ActiveXObject("WindowsInstaller.Installer");
var database = installer.OpenDatabase(filespec, msiOpenDatabaseModeTransact);
var sql = "UPDATE `Control` SET `Control`.`Height` = '18', `Control`.`Width` = '170'," +
          " `Control`.`Y`='243', `Control`.`X`='10' " +
          "WHERE `Control`.`Dialog_`='ExitDialog' AND " + 
          "  `Control`.`Control`='OptionalCheckBox'";
var view = database.OpenView(sql);
view.Execute();
view.Close();
database.Commit();

在MSI生成后(来自light.exe),将此代码作为命令行脚本运行(使用cscript.exe)将生成一个看起来更专业的ExitDialog:

alt text http://www.dizzymonkeysign.com/blog/misc/adding-and-customizing-dlgs-in-wix-3/images/exit_dlg_2.gif

回答过的其他问题

常见NoSQL数据库的应用场景是怎么样的?

我之前也有这样的疑问,查了不少资料,现在分享出来给大家一起学习哈。 1. CouchDB 所用语言: Erlang 特点:DB一致性,易于使用 最佳应用场景:适用于数据变化较少,执行预定义查询,进行数据统计的应用程序。适用于需要提供数据版本支持的应用程序。 例如: CRM、CMS...... 展开详请

安卓播放器支持ott吗?

共享汽车采用了物联网什么技术?其优缺点是什么?

我觉得共享汽车优点应该是随时随地都能见到吧....

因为我们学校附近看到好几辆(别问我体验,没驾照)

腾讯云开的发票是地税的还是国税的?

腾讯云开具的发票是国税的,普票和专票均统一是国税的。

即时通信属于哪个模块的产品?如何申请?

即时通信属于视频云,其实就是视频服务的云通信。申请开通云通信的步骤:首先,需要在腾讯云官网上完成资质认证;然后,认证审核通过后,登录腾讯云官网首页》云产品》视频服务》云通信》点“立即选购”,进入申请开通云视频解决方案页面,选择“直接使用云通信”,即开通云通信服务;最后,根据自身的...... 展开详请

如何延迟PHP函数在jQuery Ajax循环中的触发?

您可以在jquery中使用promises,当API执行完成后,将执行promise代码。 见例子 var div = $( "<div>" ); div.promise().done(function( arg1 ) { // Will fire right away...... 展开详请

扫码关注云+社区