Setup Factory打包winform程序
摘要
Setup Factory是一款软件安装工具。Setup Factory支持创建一个安装文件或一个单间的setup.exe文件,生成文件可以运行于任意版本的windows中。
步骤
1、安装Setup Factory工具。采用默认安装即可。
2、打开Setup Factory进行打包程序。填写软件信息。
包括:公司名,软件名,软件版本号,公司官网地址。
3、设置软件是x86的还是x64版本。
4、选择要打包的程序所在目录
5、窗口设置,为安装软件提供窗口设置信息,这里采用下面的方式
6、“主题”窗口中,提供了主题下拉列表,每选择一种即出现预览效果界面。根据自己的喜好,选择一种。
7、多语言设置,一般勾选简体中文 “Chinese(Simplified)*”与“繁体中文Chinese(Traditional)”。勾选后在下拉框中选择一种语言作为默认语言,选择简体中文作为默认语言。
8、“从属”窗口中选择的技术是安装软件需要依赖的组件,由于要打包的程序是使用.net 4.5开发,选择.net4 就可以了。
注意:如果安装该软件的电脑没有.net4.0改怎么办,这里就需要在打包的时候讲.net framework4.0也打包到你的软件中。具体做法可以采用下面的方式,
在SetUpFactory软件所在的目录中新建一下目录:
Dependencies\dotnet4 。并且将 dotNetFx40_Full_x86_x64.exe放在其中。
9、安装环境配置,包括卸载功能、记录日志功能、权限限制、软件安装的操作系统等选择功能。默认全选上。
10,单击完成,如图,在窗口中列出要打包的软件所需的所有文件。
11、设置主程序文件。
通过筛选功能,找到exe可执行文件。
12.设置exe属性
双击exe文件或者右键属性。选择如果存在则询问用户是否进行覆盖安装。
13、程序“”快捷方式“”设置
14、因为测试项目比较简单,其它的设置不再赘述,可以参考下面的文章
http://www.cnblogs.com/iiwen/p/5310246.html
15、打包
设置安装文件大小:这个大小最好大于你的程序的大小+dotNetFx40_Full_x86_x64.exe的大小
设置程序发布后安装包路径以及安装程序名称。
错误:
Error 2090: Dependency file not found: C:\Program Files (x86)\Setup Factory 9 Trial\Dependencies\dotnet4\dotNetFx40_Full_x86_x64.exe
需要将.net framework放在Setup Factory 安装目录下。
下载dotNetFx40_Full_x86_x64.exe,大小48.1M。将该文件放在以上的目录下,重新打包。
打包完成
从上面的日志可以看出生成了三个文件mmClock.exe,mmClock.2,mmClock.3,这个就是在打包开始设置安装文件大小过小造成资源文件没有打包进exe安装程序,所以建议:
大于你的程序的大小+dotNetFx40_Full_x86_x64.exe的大小
后果:
如果出现多个文件,则再安装过程解压资源文件出现解压失败。
安装完成
总结
这里的测试项目比较简单,如果项目比较复杂,也可以自己写一些脚本,比如判断电脑是否有.net framework,如果没有跳转到一个地址进行下载等逻辑。
-
博客地址:http://www.cnblogs.com/wolf-sun/
博客版权:如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
2014-02-22 [c#基础]DataTable的Select方法