.net程序部署(setupFactory进阶)

接上一篇 继续使用上一篇的project 。将archive里无用的文件删除 添加我们需要的文件进来。

.net程序部署(setupFactory进阶)

config是一个文本文件。 注意所有文件的 destination都是 %appfolder%   ,这代表程序 安装目录 setupfactory有很多这样的 全局变量 用起来非常方便 ,获取系统环境桌面目录 %desktop%  。 这类似 win批处理命令的%windir%  我们把目录改一下 %appfolder%\tools,这样安装时就可再创建子文件夹tools

 

我们确确实实 想定义一个我们自己独有的 用户体验好的 安装包 ,我们不想千篇一律。

screens ->before installing 选项卡:

welcome to setup 删掉,然后在license agreement编写我们自己的 安装许可文本:

.net程序部署(setupFactory进阶)

我们需要自定义一个对话框界面  用来让用户在安装过程中进行配置。在安装时也将针对用户的配置进行相应的处理。
添加一个我们自定义的安装配置界面:

 .net程序部署(setupFactory进阶)

User information Select shortcut folder 两屏也一并删掉。

 

在创建custom Screen的时候 “下一步”按钮的 脚本(单击 screens  ->before installing -> 选中custom ->ecit->actions- >On Next 选项卡):

 

.net程序部署(setupFactory进阶)
 1 -- These actions are performed when the Next button is clicked.
 2 -- advance to the next screen
 3 --采集数据 并放到全局变量里
 4 --端口
 5 port = DlgEditField.GetProperties(CTRL_EDIT_01).Text;
 6 --启动菜单加快捷方式
 7 startup = DlgCheckBox.GetProperties(CTRL_CHECK_BOX_01).Checked;
 8 --桌面快捷方式
 9 desktop = DlgCheckBox.GetProperties(CTRL_CHECK_BOX_02).Checked;
10 --%StartupFolder%
11 runnow = DlgCheckBox.GetProperties(CTRL_CHECK_BOX_03).Checked;
12 --是否有加密狗
13 softkey=DlgCheckBox.GetProperties(CTRL_CHECK_BOX_04).Checked;
14 --Dialog.Message("title ddf",txport.Text);
15 Screen.Next();
.net程序部署(setupFactory进阶)


这个很简单 就是获取几个控件的值 并赋给变量,以便在稍后的过程中使用。

 

然后就是安装过程中针对用户的选项进行处理 ,安装过程不就是 他自动生成的 拷文件么 。要我们管毛线啊。我这里只是一个示范 我们根据用户选项追加配置文件 也就是config.ini 首先执行此代码时 文件已经复制完毕 ,配置文件的目录在 %appfolder%  写文本文件  这样即可。

还是 screens-> after installing ->ecit->actions->onPreLoad:

.net程序部署(setupFactory进阶)
 1 -- These actions are performed before the screen is shown.
 2 --安装完成 进行初始化全局变量里面的配置
 3 --端口,追加配置文件
 4 TextFile.WriteFromString(SessionVar.Expand("%AppFolder%\\config.ini"), "\r\nport="..port, true);
 5 --有无加密狗
 6 if softkey then
 7 TextFile.WriteFromString(SessionVar.Expand("%AppFolder%\\config.ini"), "\r\nhardwareIdType=softkey", true);
 8 end
 9 
10 if startup then
11 Shell.CreateShortcut("%StartupFolder%", "DcmPrintSCP", SessionVar.Expand("%AppFolder%\\NewScp.exe"), "", "%AppFolder%", "", 0, SW_SHOWNORMAL, nil, "shortcut for dcmprintscp");
12 end 
13 --根据复选框选项创建快捷方式 的代码 这样就可以了。
14 if desktop then
15 Shell.CreateShortcut("%DesktopFolder%", "DcmPrintSCP", SessionVar.Expand("%AppFolder%\\NewScp.exe"), "", "%AppFolder%", "", 0, SW_SHOWNORMAL, nil, "shortcut for dcmprintscp");
16 end 
17 
18 --卸载程序有问题 必须得新建一个快捷方式
19 Shell.CreateShortcut("%AppFolder%", "shortcut_uninstall", SessionVar.Expand("%AppFolder%\\uninstall.exe"), SessionVar.Expand("\"/U:%AppFolder%\\Uninstall\\uninstall.xml\"" ), "", "", 0, SW_SHOWNORMAL, nil, "shortcut for uninstall");
.net程序部署(setupFactory进阶)

 

需要注意的:
字符串连接 是 ..这种方式 ,并不是C++里寻常的+号 也不是 VB里的连字符。

 

还有些需要注意的是 类vb 语法 并非完全跟vb一样  ,比如这段

if startup then

xxx

End

 

最后我们需要 自己搞一个banner  我已经搞好了 ,既然做东西就要注重细节。

 

程序启动时显示安装许可 ,然后是用户自定义配置选项  然后是选择安装目录。然后安装程序释放我们打包的文件到指定目录。 然后我们的脚步根据用户定义的配置选项追加配置文件 和创建桌面快捷方式 ,并且用户没有.netFramework框架 自动安装。就这样一个安装包就做好了。像我这种需求 基本上 大部分功能我都用不完  只是冰山一角。

 

 .net程序部署(setupFactory进阶)

.net程序部署(setupFactory进阶)

 

我在这bilibili的半天 你都不厌其烦的看完了  你再 根据自己的实际需求  , 再啃啃帮助文档 就差不多了。

.net程序部署(setupFactory进阶),布布扣,bubuko.com

.net程序部署(setupFactory进阶)

上一篇:如何使用BHO定制你的Internet Explorer浏览器


下一篇:php使用curl来获取远程图片