Posts

Wix Installation Strategy Tutorial 16 Chinese 自动生成多语言文件

Image
Origin From:  https://www.cnblogs.com/lonelyxmas/p/9054574.html Wix 安装部署教程(十六) -- 自动生成多语言文件 原文: Wix 安装部署教程(十六) -- 自动生成多语言文件      因为持续集成需要,所有项目编译完之后生成一个多语言的安装包。之前生成mst文件都是手动操作,而且mst文件必须每次重新和新的安装包“关联”,否则中文的安装包去调用英文的资源的时候就会报类似于“类型转换失败”的错误。基于这两点,有必要程序化这个流程,不然每次打包都得找我了。以下是程序的记录。比较简单。      其实就是用程序调用cmd,再次之前,请记得将wix的bin目录加入到系统变量中。否则命令不会被识别;然后将程序执行目录指向目标目录。  static void Main( string [] args) { if (args.Length < 1 ) { return ; } Console.WriteLine(args[ 0 ]); var path = args[ 0 ]; // var path =MsiPath; Console.WriteLine( " 正在执行: " + DateTime.Now); var p = new Process { StartInfo = { FileName = " cmd.exe " , UseShellExecute = false , RedirectStandardInput = true , RedirectSta...

Wix Installation Strategy Tutorial 15 Chinese CustomAction的七种用法

Image
Origin From:  https://www.cnblogs.com/lonelyxmas/p/9054570.html Wix 安装部署教程(十五) --CustomAction的七种用法 原文: Wix 安装部署教程(十五) --CustomAction的七种用法       在WIX中,CustomAction用来在安装过程中执行自定义行为。比如注册、修改文件、触发其他可执行文件等。这一节主要是介绍一下CustomAction的7种用法。 在此之前要了解InstallExecuteSequence,它是一个Action的执行序列。 Installer会按照默认顺序来执行这些Action。通过字面意思也大概知道这些Action的目的。这些方法不是每次一都执行,分安装和卸载。如果CustomAction没有指定,很可能会安装卸载的时候都会执行一次。 • AppSearch • LaunchConditions • ValidateProductId • CostInitialize • FileCost • CostFinalize • InstallValidate • InstallInitialize • ProcessComponents • UnpublishFeatures • RemoveRegistryValues • RemoveShortcuts • RemoveFiles • InstallFiles • CreateShortcuts • WriteRegistryValues • RegisterUser • RegisterProduct • PublishFeatures • PublishProduct • InstallFinalize   一、设置变量       Custom Action本身是分很多类型,这里是用到的是Type 51 Custom Action。用来设置变量的值。详情请看  Custom Action Types < CustomAction Id ="rememberInstallDir" Property ="ARPINSTALLLOCATION" ...

Wix Installation Strategy Tutorial 14 Chinese 多语言安装包之用户许可协议

Image
Origin From:  https://www.cnblogs.com/lonelyxmas/p/9054569.html Wix 安装部署教程(十四) -- 多语言安装包之用户许可协议 原文: Wix 安装部署教程(十四) -- 多语言安装包之用户许可协议          在上一篇中,留下了许可协议的问题,目前已经解决。感谢网友武全的指点! 问题          一般我们是用WixVariable 来设定许可协议。如下所示:   < WixVariable Id ="WixUILicenseRtf" Value ="license.rtf" />       但在多语言中我们写成下面这样是不识别的。它会被直接当成文件路径,而报错,找不到文件。 < WixVariable Id ="WixUILicenseRtf" Value ="!(loc.LicenseRtf)" /> string: < String Id ="LicenseRtf" > Languages\license.rtf </ String > 自定义CustomLicenseDlg 这样我们需要自定义一个许可证书对话框。不过我们可以在源码的基础上稍作修改。在源码中找到LicenseAgreementDlg.wxs。 < Wix xmlns ="http://schemas.microsoft.com/wix/2006/wi" > < Fragment > < UI > < Dialog Id ="LicenseAgreementDlg" Width ="370" Height ="270" Title ="!(loc.LicenseAgreementDlg_Title)" > < Control Id =...