AdvancedInstaller设置当用户选择中文路径时弹窗警告
2017-11-02 14:02
190 查看
问题需求:
当我们的程序用到一些插件功能,而这些插件又不识别中文,不支持中文路径的话,我们的程序安装路存在中文的话就没办法正常使用插件了。
解决方案:
在制作一键安装包的时候在用户选择安装路径的时候检查路径中的字符。当路径中包含中文,就弹窗提醒:所选路径不能包含中文
1.制作一个用户自定义动作(Custom Actions)
制作方式见我另外一个博客:http://blog.csdn.net/qq_20849387/article/details/78421482
修改里面代码:
生成文件为:JudgeInstallPath.CA.dll。我们需要这个文件
2.导入这个文件到AdvancedInstaller
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/ea96de0539cdc665c3f170245edc962f)
选择刚刚生成的Dll就好了
3.设置参数(ISZH)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/fa223f6c2c6fa5372fa6b32f0f4ad55a)
直接在上图那个位置右键添加就可以了
3.设置FolderDlg对话框的下一步按钮的事件(published events)
在User Interface -Dialogs 点击 FolderDlg,选中“下一步”如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/fef04b74017a75f113a29d5e7fc8bfd9)
看到下一步下面的窗口是这个样子的:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/49828dc31afb96aa2ce1820c71293d88)
点New新建事件,在argument 选我们做好的dll,点击OK
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/bdef7ef48e2e6e82cb2658256f44ca8f)
再点一个new
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/fc8b6993535112c2e4d924de9102aa80)
修改一下 Display a specific dialog 这个事件,双击或者选中点击Edit…
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/d35c6dd61d591bba118c2eccd84086df)
注意这几个事件的位置。一定要有先后顺序
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/9785751ba98a342538c88e4d7a662cdc)
上图中箭头所指的事件一定需要先执行才可以,调整顺序可以选择任一个事件点方框里的Up或者Down来调。
4.修改弹窗信息。
当你做完这些事情你会发现这里多了一个窗口
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/1d655ea3ac49b4172fcf76342bbb6555)
当你编辑成我这样子就可以了哇。
当我们的程序用到一些插件功能,而这些插件又不识别中文,不支持中文路径的话,我们的程序安装路存在中文的话就没办法正常使用插件了。
解决方案:
在制作一键安装包的时候在用户选择安装路径的时候检查路径中的字符。当路径中包含中文,就弹窗提醒:所选路径不能包含中文
1.制作一个用户自定义动作(Custom Actions)
制作方式见我另外一个博客:http://blog.csdn.net/qq_20849387/article/details/78421482
修改里面代码:
using Microsoft.Deployment.WindowsInstaller; using System.Text.RegularExpressions; namespace JudgeInstallPath { public class CustomActions { [CustomAction] public static ActionResult CustomAction1(Session session) { //获取安装路径 string installpath = session["APPDIR"]; Regex regexzhe = new Regex("[\u4e00-\u9fa5]"); if(regexzhe.IsMatch(installpath)) { //"ISZH" 为 Advanced Installer 添加的安装参数,如有需求可自行更改 session["ISZH"] = "true"; } else { session["ISZH"] = "false"; } return ActionResult.Success; } } }
生成文件为:JudgeInstallPath.CA.dll。我们需要这个文件
2.导入这个文件到AdvancedInstaller
选择刚刚生成的Dll就好了
3.设置参数(ISZH)
直接在上图那个位置右键添加就可以了
3.设置FolderDlg对话框的下一步按钮的事件(published events)
在User Interface -Dialogs 点击 FolderDlg,选中“下一步”如下图:
看到下一步下面的窗口是这个样子的:
点New新建事件,在argument 选我们做好的dll,点击OK
再点一个new
修改一下 Display a specific dialog 这个事件,双击或者选中点击Edit…
注意这几个事件的位置。一定要有先后顺序
上图中箭头所指的事件一定需要先执行才可以,调整顺序可以选择任一个事件点方框里的Up或者Down来调。
4.修改弹窗信息。
当你做完这些事情你会发现这里多了一个窗口
当你编辑成我这样子就可以了哇。
相关文章推荐
- 在Unity中使用弹窗选择路径
- Jenkins的FTP上传插件Publish Over FTP Plugin设置支持中文路径
- 软件安装时到底是否应该让用户选择路径
- 【Scikit-Learn 中文文档】验证曲线: 绘制分数以评估模型 - 模型选择和评估 - 用户指南 | ApacheCN
- Visual Studio安装项目中将用户选择的安装路径写入注册表的方法
- 【Scikit-Learn 中文文档】优化估计器的超参数 - 模型选择和评估 - 用户指南 | ApacheCN
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量 - 模型选择和评估 - 用户指南 | ApacheCN
- Xcode中设置用户自定义头文件搜索路径
- 【Scikit-Learn 中文文档】交叉验证 - 模型选择和评估 - 用户指南 | ApacheCN
- Serv-U设置匿名账户以及中文路径文件名支持
- 【Scikit-Learn 中文文档】28 交叉验证 - 模型选择和评估 - 用户指南 | ApacheCN
- 【Scikit-Learn 中文文档】交叉验证 - 模型选择和评估 - 用户指南 | ApacheCN
- 【Scikit-Learn 中文文档】模型持久化 - 模型选择和评估 - 用户指南 | ApacheCN
- 简单设置让EasyUI显示中文,日期选择框格式为yyyy-MM-dd格式
- MFC选择目录SHBrowseForFolder选择文件CFileDialog对话框设置默认路径
- 【转载】中文ubuntu里用户目录里的路径改成英文
- Fedora 17和linux相关(文件夹权限,用户切换,Fedora版本号,中文拼音输入法设置)
- 【Scikit-Learn 中文文档】优化估计器的超参数 - 模型选择和评估 - 用户指南 | ApacheCN
- Xcode中设置用户自定义头文件搜索路径
- 简单设置让EasyUI显示中文,日期选择框格式为yyyy-MM-dd格式