您的位置:首页 > 其它

AdvancedInstaller设置当用户选择中文路径时弹窗警告

2017-11-02 14:02 190 查看
问题需求:

当我们的程序用到一些插件功能,而这些插件又不识别中文,不支持中文路径的话,我们的程序安装路存在中文的话就没办法正常使用插件了。

解决方案:

在制作一键安装包的时候在用户选择安装路径的时候检查路径中的字符。当路径中包含中文,就弹窗提醒:所选路径不能包含中文

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.修改弹窗信息。

当你做完这些事情你会发现这里多了一个窗口



当你编辑成我这样子就可以了哇。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐