一.Setup Factory
在使用Setup Factory时,用户可以通过工程向导或手动操作来创建新的工程,设置常规信息,如公司名称、产品名称、产品版本等。在创建安装程序的过程中,用户可以添加安装时的语言,设置安装过程中的变量,修改安装和卸载的屏幕,添加反安装选项等。此外,Setup Factory还支持在INI文件中添加设置,并在安装程序执行时解压缩到临时文件夹中,以便在后续的安装过程中使用。
总之,Setup Factory是一款功能强大的安装程序创建工具,可以帮助用户快速、灵活地创建出各种类型的安装程序,满足不同的需求。
安装包链接:https://pan.baidu.com/s/1B8eic63rvSfrYB9Jd5MWAQ 密码:xp4s
如果链接失效了,可以留言。
二.打包流程
1.产品和公司信息
2.平台选择
3.打包目录
4.窗口样式
5.主题默认
6.语言设置,选择英文和中文,这里默认中文。
7.依赖环境,这里比较老了。后面我们打包.net 6.0运行时在初始文件中,这里不选。
8.默认,对操作系统有要求可更改。
9.快捷方式设置
10.安装前脚本设置:
主要用来检测是否已安装,这里通过创建注册表变量检测,同样卸载时需要删除注册表相关项。
这里添加了一个已安装界面提示用户
脚本整理如下
-- These actions are performed before the screen is shown.
isExit = Folder.DoesExist("%AppFolder%");
if(isExit == false) then
Folder.Create("%AppFolder%");
end;
existkey = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "Software\\Exposure\\path");
if(existkey) then
Screen.Jump("Custom");
end;
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\Exposure\\path");
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Exposure\\path", "pathValue", SessionVar.Expand("%AppFolder%"), REG_SZ);
result = Folder.DoesExist("C:\\Program Files\\dotnet\\sdk\\6.0.200");
if(result == false) then
Shell.Execute(SessionVar.Expand("%TempLaunchFolder%\\windowsdesktop-runtime-6.0.20-win-x64.exe"), "open", "", "", SW_SHOWNORMAL, true)
end;
Screen.End();
这里的初始文件Shell.Execute(SessionVar.Expand(“%TempLaunchFolder%\windowsdesktop-runtime-6.0.20-win-x64.exe”), “open”, “”, “”, SW_SHOWNORMAL, true)
如下设置:
11.卸载设置
12.为了防止卸载增加了密码交互,且卸载时需要删除前面安装时添加的注册表。
脚本整理如下:
result = SessionVar.Get("%EditVar01%");
if(result == "0123456789") then
Registry.DeleteKey(HKEY_LOCAL_MACHINE, "Software\\Exposure\\path");
Screen.Next();
else
Application.Exit(EXIT_REASON_USER_ABORTED);
end;
12.build结束