windows 打包工具
bilibili:https://www.bilibili.com/video/BV1654y1k7F9/?spm_id_from=333.788.videocard.2&vd_source=2fe3d27050f962abd7a6445728cc854e
advanced installer
setup factory
inno setup
nsis
使用Setup Factory安装包制作工具制作安装包
在我们开发完软件后,除了极个别案例我们把整个目录复制给客户用外,我们一般都需要做成安装包,方便整个软件的部署操作,以安装包的部署操作可能简单的是复制文件,也可能包括一些注册表、数据库等额外的操作,不过安装包部署肯定是能够给客户提供专业、统一的软件安装体验,同时封装了很多细节方面的处理。在我们日常的基于.NET的开发中,VS2010之前我们还可以使用内置的安装包制作工具,自从VS2012、VS2013以后,微软把这个去掉,集成使用了InstallShield进行安装包的制作了,我自己在这方面也写了两篇随笔《基于DevExpress的Winform程序安装包的制作》、《基于InstallShield2013LimitedEdition的安装包制作》,不过基于InstallShield的制作虽然可以完成安装包的打包操作,不过也不见得是比较方便的打包工具,本篇介绍的Setup Factory是一个非常高效,功能强大的安装包制作工具,在独立于VS之外,我们可以用它作为我们常规.NET开发的安装包制作,简单易用。
1、Setup Factory介绍
Setup Factory 是一个强大的安装程序制作工具。提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序。Setup Factory 的特性包括:工程向导、自定义对话框、主题/皮肤样式、运行时间模块、最小化支持、MD5编码序列号、250个功能函数的脚本编辑器、授权支持和其他特性等。
目前使用的版本是Setup Factory 9.5,不过各个版本之间差异并不大,这个软件在网上也很容易得到(即使是特别版本的,呵呵),因此较InstallShield更为方便获取到,在简单的对这款安装包制作工具的了解后,基本上常规的功能都非常方便设置处理,确实是比较易用的。软件的界面效果如下所示。
从软件的主要功能来讲,它的安装包制作,主要就是左边的任务栏的各个处理操作了,包括内容有:文件Files、设置Settings、屏幕Screens、动作Action、资源Resources、卸载UnInstall等操作。
2、软件安装包的制作
我们创建一个安装包,输入相关的公司、软件名称等,如下所示。
一步步后,我们需要指定指定具体的位置,以便加入所需要的文件,如下所示。
然后选择安装包的界面语言包,如下所示。
进一步的操作,就可以选择环境的安装包,例如.NET4,如果选择这个依赖环境,那么在安装的过程中会自动安装,好像说需要在SetUpFactory软件所在的目录中新建一下目录:Dependencies\dotnet4 。并且将 dotNetFx40_Full_x86_x64.exe放在其中。
接着需要设置一些安装包的操作,如是否包含卸载操作等等,如下界面所示。
最后,程序自动加入指定目录的问价,在主体界面中显示对应的文件,如下安装包制作视图所示,就是制作一个客户关系管理软件的安装包界面视图,包含所需要安装的文件、文件文档、程序依赖文件等。
在返回到主界面的安装包视图后,我们就是按照左边的任务工具栏的顺序,一步步的对安装包的参数进行设置即可。
包含的内容有:文件Files、设置Settings、屏幕Screens、动作Action、资源Resources、卸载UnInstall等操作。我们在加入文件后,对执行文件的相关参数进行设置处理,如下所示。
对执行文件的属性进行设置,根据情况设置相关的参数信息,如下界面所示。
然后接着对设置信息进行处理,如指定安装包软件的名称、公司信息、安装版权信息、安装路径等,如下界面所示。
安装包的屏幕显示,我们可以修改其中的图片,以及相关的提示信息、按钮信息等内容,如下界面所示。
在弹出的界面里面,我们可以通过Project内容选择符合安装包的制作主题,在右下角里面,我们还可以单击编辑按钮,对样式图片进行修改,选择符合自己项目的背景图片。
其他处理如动作Action、资源Resources等,我们根据情况进行设置即可,一般如果没有特殊,则不需要进行处理。
卸载的操作,我们可以修改其中的提示名称,将其修改为中文的提示信息,如下所示。
最后可以进行编译了,指定生成的目录和文件名称,编译就可以获得一个独立的安装包的。
编译过程就是把所需的文件一步步加入到一个安装包文件里面,如下是进度提示所示。
下面介绍的界面效果就是我完成后的安装包界面效果,包括了背景图片的修改,卸载信息的设置、安装包文件的信息等等,具体效果也可以下载我的客户关系管理软件进行了解。
安装部署后,软件的快捷键在桌面上存在,并且可以看到【打开文件位置】的操作也可以了,这个在之前VS里面的安装包是没有的,呵呵,小细节。
安装文件是一个独立的文本文件,安装Setup Factory工具后,直接使用,也可以使用其他文本编辑工具维护和查看。
2、关于DevExpress相关DLL的依赖
在我们完成添加编译完成的系统所需相关DLL外,如果我们的UI依赖DevExpress,那么也需要引入对应的DevExpress相关DLL文件,我们可以一般可以拷贝到发布目录中,然后引入响应文件即可。
另外DevExpress还需要包含相关的中文化资源,可以通过包含文件夹所有文件的方式包含进来,如下所示。
完成后编译生成安装的执行文件即可。
以上就是我对一个完整的客户关系管理软件的安装包,在Setup Factory工具上的制作过程,基本上安装包制作起来还是比较方便快捷的,而且最后也就是一个文本文件的信息,独立,比较好管理。
对比InstallShield的笨重和麻烦,这个软件独立维护安装包也是非常方便的一件事情。
https://www.bbsmax.com/A/B0zqW7ar5v/:
第7步:设置辅助程序文件
下图中,对于辅助的.exe程序,不需要出现在开始程序菜单中,选中文件并双击,在“快捷方式”选项卡中,
取消选中“开始菜单>应用程序文件夹”
第8步:设置从属文件
在“任务”栏中,“资源模块”,点击“从属文件”菜单,弹出“资源”窗口,如下图:
点击“添加”按钮,弹出“初始文件属性”窗口,点击“浏览”按钮选择目标文件,这里选择了MySQL数据库对.Net的程序驱动“mysql-connector-net-6.9.4”。
并且勾选“当安装程序退出时删除”。点击“确定”按钮完成操作。
第9步:程序控制安装“从属文件” 【此步骤很重要】
由于选择了“从属文件”,所以在安装软件之前就需要先安装从属文件。需要弹出“从属文件”安装界面。
在“任务”栏中,“屏幕”模块,点击“安装之前”菜单,弹出“Screens”窗口,默认切换到“安装之前”选项卡。
选中“Read to Install”,点击“编辑”按钮,弹出“Screens Properties”屏幕属性窗口。
在“操作”选项卡中,输入脚本语言:
Shell.Execute(_TempLaunchFolder.."\\mysql-connector-net-6.9.4.msi","open","","",SW_SHOWNORMAL,true)
具体的API定义参考《安装包制作工具 SetupFactory API清单》
点击“确定”按钮完成配置,在安装的过程中就会弹出该辅助程序安装界面。
第二步:写环境组件的运行脚本:

result = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\.NETFramework\Policy\v4.5");
if (result == false) then
File.Run(SessionVar.Expand("%TempLaunchFolder%//dotnetfx45_full_x86_x64.exe"), "", "", SW_SHOWNORMAL, true);
end
代码块
好了,到了这里组件环境我们已经配置到安装包里面去了,接下来,如果我们有第二个exe文件想一起打包进去,而且安装的时候自动安装第二个exe,这个如何搞呢?让我们继续~,将第二个exe放入需要打包的文件夹内,也就是我们上面“新建项目”的 第四步 所选的路径下,做好前期做准备之后,我们要写脚本了,在主安装包安装完毕之后,自动安装第二个exe安装包

Shell.Execute("%AppFolder%//****.exe","open","","",SW_SHOWNORMAL,true)
来自:链接:https://www.jianshu.com/p/3112ebe148bc
参考:
https://www.bbsmax.com/A/B0zqW7ar5v/
https://www.bilibili.com/video/BV1654y1k7F9/?spm_id_from=333.788.videocard.2&vd_source=2fe3d27050f962abd7a6445728cc854e
https://www.cnblogs.com/wuhuacong/p/6101853.html
https://www.jianshu.com/p/3112ebe148bc
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?