`
salever
  • 浏览: 258366 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Wix使用整理(二)

    博客分类:
  • WIX
阅读更多

1)         安装卸载时进行日志记录

Wix 制作的 Installer 的调试很麻烦,没有直接的 Bug 工具,可以通过记录安装日志的方式进行间接调试。命令为
msiexec /i package.msi /l log.txt

详细参考:
msiexec /Option <Required Parameter> [Optional Parameter]
安装选项
        </package | /i> <Product.msi>
               
安装或配置产品
        /a <Product.msi>
               
管理安装 - 在网络上安装产品
        /j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>]
               
播发产品 - m 播发到所有用户, u 播发到当前用户
        </uninstall | /x> <Product.msi | ProductCode>
               
卸载产品
显示选项
        /quiet
               
安静模式,无用户交互
        /passive
               
无从参与模式 - 只显示进程栏
        /q[n|b|r|f]
               
设置用户界面级别
                n -
无用户界面
                b -
基本界面
                r -
精简界面
                f -
完整界面 ( 默认值 )
        /help
               
帮助信息

重新启动选项
        /norestart
               
安装完成后不重新启动
        /promptrestart
               
提示用户重新启动 ( 如果必要 )
        /forcerestart
               
安装后总是重新启动计算机

日志选项
        /l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>
                i -
状态消息
                w -
非致命警告
                e -
全部错误消息
                a -
操作的启动
                r -
操作特定记录
                u -
用户请求
                c -
初始界面参数
                m -
内存不足或致命退出信息
                o -
磁盘空间不足消息
                p -
终端属性
                v -
详细输出
                x -
额外调试信息
                + -
扩展到现有日志文件
                ! -
每一行刷新到日志
                * -
记录所有信息,除了 v x 选项
        /log <LogFile>
               
/l* <LogFile> 相同
更新选项
        /update <Update1.msp>[;Update2.msp]
               
应用更新
        /uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode>
               
删除产品的更新
修复选项
        /f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode>
               
修复产品
                p -
仅当文件丢失时
                o -
如果文件丢失或安装了更旧的版本 ( 默认值 )
                e -
如果文件丢失或安装了相同或更旧的版本

                d -
如果文件丢失或安装了不同版本
                c -
如果文件丢失或较验和与计算的值不匹配
                a -
强制重新安装所有文件
                u -
所有必要的用户特定注册表项 ( 默认值 )
                m -
所有必要的计算机特定注册表项 ( 默认值
)
                s -
所有现有的快键方式 ( 默认值
)
                v -
从源运行并缓存本地数据包

设置公共属性
        [PROPERTY=PropertyValue]

2)         安装默认位置的修改

安装包一般默认安装在系统盘的 Program Files 文件夹下,此文 件在 Wix 中为 ProgramFilesFolder ,使 用形式为:
<Directory Id="ProgramFilesFolder"></Directory >
   
还有很多内置的文件夹描述属 性,比如桌面 ——DesktopFolder 、开始菜单的程序 ——ProgramMenuFolder ,这些都可以直接用。
   
有时候安装程序限定要装在某个盘 的根目录中,这时候可以用 WindowsVolume 来代替系统盘,但是使用方法上有一定的区别:
    <SetDirectory Id="WINDOWSVOLUME" Value="[WindowsVolume]"/>
    <Directory Id="WINDOWSVOLUME"></Directory>
   
不加上 SetDirectory 会报错,最好加 上。

   
要想使用自己定义的安装目录, 则要对 Wix 自带 的属性 WIXUI_INSTALLDIR 进行包装。
    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" />

自定义 CustomAction( )

CustomAction Wix 中扮演着很重要的角色,这里讲讲它的其中一个用途 —— 根据条件设置属性的值。
例子:
<Property Id="IDEVC71" Value="not detected"/>
<Property Id="VC71PATH">
      <RegistrySearch Id="VC71" Type="raw" Root="HKLM" Key="SOFTWARE\Microsoft\VisualStudio\7.1" Name="InstallDir"/>
</Property>
<CustomAction Id="MyAction.SetVC71Property" Return="check" Property="IDEVC71" Value="detected">VC71PATH</CustomAction>

用途:一旦在注册表中找到相关 的值,那么属性 IDEVC71 的值将被设为 detected ,否则为 not detected

3)         如何在安装时设置注册表和环境变量

设置注册表:
<RegistryValue Root="HKCU" Key="Software\Developer" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
   
设置环境变量:(这里将环境变量的设置作为一个 Component
<Component Id="ProductEnvironment" Guid="" KeyPath="yes">
     <Environment Id='UpdatePath' Name='PATH' Action='set' System='yes' Part='first' Value='[INSTALLLOCATION]bin'/>
      <Environment Id='SetTclLibraryPath' Name='TCL_LIBRARY' Action='set' System='yes' Part='all' Value='[INSTALLLOCATION]msys\lib'/>
</Component>
   
前者是添加到系统变量 PATH 中,后者是新建系统环境变量 TCL_LIBRARY

4)         自定义 CustomAction( )

调用本机应用程序:
<Property Id="NOTEPAD">Notepad.exe</Property>
<CustomAction Id="LaunchReadme" Property="NOTEPAD" ExeCommand="[INSTALLLOCATION]README.txt" Return="asyncNoWait"/>
   
用途:调用 Notepad 程序(记事本)打开安装目录下的 README.txt 文件。

5)         INI 文件的操作

Wix 提供对标准 INI 文件的操作,包括新建、编辑等。
例子:
<IniFile Id="WriteIntoFile" Action="addLine" Key="InstallDir" Name="Foobar.ini" Sections="Paths" Value="[INSTALLDIR]"/>
用途:在文件 Foobar.ini 文件中 Paths 段下添加一行 “InstallDir = 安装目录
Action
中的操作包括添加、删除、新建等。在实际编写代码时会有自动提示。

6)         Heat 的特殊用法

Heat 工具用于 harvest 文件或者文件夹,是比较基础的 Wix 工具,这里讲讲它的一个特殊用法:配合 candle 使用 var 传递参数。
   
例如:
      heat.exe dir  VC80 -gg -nologo -ke -sfrag -template:fragment  -dr INSTALLLOCATION -cg VC80ComponentGroup -var var.VC80Dir -out build\VC80.wxs
   
用途:将文件夹 VC80 下的所有文件和文件夹打包进 VC80ComponentGroup 里,源文件根目录 SourceDir 用( $var.VC80Dir )代替。
   
编译的时候使用 candle -dVC80Dir="VC80" 即可,这样就可以同时对不同文件夹下的 文件进行一次性处理。 -d 参数可以有多个,也可以在 light 的时候调用,尝试成功。

7)         Wix 自动化 Build 流程

heat

candle

light
目前可以考虑使用基本的 BAT 批处理命令进行自动化的 Build 过程,以后可以考虑引入 Build 系统。

8)         关于 FilesInUse 的使用

Wix 中自带了 FilesInUse MsiRMFilesInUse2 个错误处理的对话框
一般不需要开发人员去处理,只需要在 Install UI Sequence 前引用这两个对话框即可
<DialogRef Id = "FilesInUse">
这样卸载或者其他操作时,当前安 装的文件正在被使用时会出现提示框,要求用户选择操作

 

 

分享到:
评论

相关推荐

    Windows installer xml使用整理

    Windows Installer XML(WiX)是一个开源工具集,用于创建Windows安装程序。它使用XML格式来定义安装包的组件,使得...在实际工作中,结合提供的`Wix使用整理.doc`文档,可以进一步学习和掌握WiX的具体用法和最佳实践。

    软件打包工具

    WiX使用XML语法,可以创建完全定制化的安装程序,适合大型项目和企业级应用。 4. Electron Builder:对于基于Electron框架的跨平台桌面应用,Electron Builder是一个很好的选择。它可以生成Windows、macOS和Linux的...

    聊天和打包

    2. **资源整理**:收集图片、音频、配置文件等资源,并放入指定目录。 3. **版本控制**:确保所有必要的文件都在版本控制系统中。 4. **依赖管理**:处理第三方库和框架,确保它们与项目一起打包。 5. **生成安装包*...

    NSIS用户手册 中文版和NSIS图文教程集锦 - 轻狂志 - 20150508

    4. **插件应用**:介绍常用的NSIS插件及其使用方法,如InnoSetup对比、NSIS与WiX的区别等。 5. **问题解答**:收录了常见问题及解决方法,帮助用户在遇到困难时找到答案。 这些资源对于想要学习和掌握NSIS的人来说...

    firebreath插件文档

    windwos下使用firebreath框架实现插件的整个过程文档整理。 文档包含: 1. firebreath---环境的搭建 2. firebreath---创建plugin插件 3. firebreath---在插件中实现功能 4. firebreath---插件的调试方法 5. ...

    如何安装驱动并进行打包

    2. **整理驱动文件**:将驱动相关的所有文件,包括.sys、.inf、.dll等,整理到一个目录下。 3. **创建INF文件**:INF文件是驱动安装的关键,它包含了驱动的描述、安装路径、依赖项等信息。确保INF文件正确无误,...

    迎新晚会.zip

    8. **数据分析**:对于大型活动,可能会收集门票销售、参与者反馈等数据,IT人员需要使用Excel或数据分析工具(如Tableau、Power BI)进行数据整理和分析,以评估活动效果。 9. **网络安全**:在分享和存储敏感信息...

    打包工具-----打包你要发布软件的安装程序.rar

    - WiX (Windows Installer XML):微软提供的XML格式的构建工具,用于创建Windows Installer MSI包,适合大型企业级应用。 - Advanced Installer:商业级打包工具,提供丰富的定制选项和自动化脚本支持。 - ...

    wpf揭秘源码打包

    4. **打包工具**:为了打包WPF应用,开发者通常会使用ClickOnce或WIX等工具。ClickOnce提供了一种简单的部署方式,用户只需点击即可安装,但对自定义需求的支持有限。相比之下,WiX允许创建高度定制化的安装程序,...

    吐血之作-给程序打上包 (制作安装程序、卸载程序)

    制作安装程序,你可以选择使用各种工具,如Inno Setup、NSIS (Nullsoft Scriptable Install System)、WiX(Windows Installer XML)等。这些工具提供了脚本化的界面,允许开发者自定义安装过程的每个细节。例如,...

    安装文件制作

    在IT行业中,制作安装文件是软件开发流程中的一个重要环节,它能让用户轻松地在计算机上部署和使用软件。本文将详细讲解安装文件制作的相关知识点,包括安装文件的作用、制作工具的选择、基本步骤以及常见问题。 ...

    把C#开发程序打包成绿色的exe执行文件(自解压文件)

    注意,这种方法适用于小型项目,如果项目较大或有复杂的依赖关系,可能需要使用更专业的打包工具,如Inno Setup、Advanced Installer或WiX等,这些工具能够处理更复杂的情况,如注册COM组件、安装.NET Framework等。...

    学生会个人述职报告15篇.docx

    - **网站搭建**:使用WordPress、Wix等平台建立学生会官方网站,发布活动信息和重要通知。 - **移动应用**:开发手机应用程序,方便学生获取信息、参与投票或报名参加活动。 #### 6. **网络安全意识** - **培训与...

    [Csharp高级编程(第6版)]15章16章部署

    - **安装程序制作**:使用工具如WiX Toolset或Setup and Deployment Projects in Visual Studio来创建自定义安装程序,方便用户安装应用。 - **自动更新机制**:探讨如何实现应用程序的自动检查更新功能,保持应用...

    如何给程序打包

    4. **资源文件整理**:包含图标、帮助文档、许可协议等,这些是提升用户体验的重要组成部分。确保它们被正确地嵌入到安装包中。 5. **测试打包**:在不同的操作系统和硬件环境下进行测试,以确保打包后的程序可以在...

    开发程序安装打包工具

    安装打包工具的主要任务是将源代码编译后的可执行文件、库文件、配置文件等资源整理成一个独立的安装包。这个过程通常包括以下几个步骤: 1. **资源收集**:收集程序运行所需的全部文件和资源,如DLL文件、配置文件...

    【编号83】摄影快闪 模板相册.pptx

    例如,在您的案例中,“摄影快闪”可能是一个短暂的摄影活动,而“模板相册”则可能包含了一系列设计好的页面布局,用于展示快闪活动的照片,使得参与者可以快速地整理和分享他们的作品,无需从零开始设计每个页面。...

    打包和注册Demo

    然而,在一些特定的企业或旧版应用环境中,ActiveX仍被广泛使用。 7. **打包和注册的自动化**:现代开发环境中,有多种工具可以帮助开发者自动化打包和注册过程,例如WiX Toolkit、NSIS(Nullsoft Scriptable ...

    封包的制做

    - **安装脚本**:创建安装包的第一步是编写安装脚本,这通常使用专门的打包工具完成,如NSIS(Nullsoft Scriptable Install System)、Inno Setup或WiX Toolset。这些脚本定义了安装过程中要执行的步骤,包括文件...

    计算机毕业综合实践方案.pdf

    在完成任务的过程中,学生需要设计演示文稿的结构和风格,收集整理食品安全与营养知识,并制作图文并茂的幻灯片。此外,为提升观众观看体验,学生还需学习添加动画和过渡效果。最后,通过演示文稿的演讲与分享,学生...

Global site tag (gtag.js) - Google Analytics