博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用Setup Factory打包基于.Net的WinForm程序
阅读量:4114 次
发布时间:2019-05-25

本文共 4020 字,大约阅读时间需要 13 分钟。

制作安装程序,无非是复制文件、注册控件、注册服务、修改设置项(注册表、配置文件)等等。通过一些专门的安装制作软件不难做出一个专业的安装程序。

.net下的WinForm程序,制作安装包需要做些什么呢?

典型情况下可能需要做如下事情:

1、判断客户机是否安装了.net framework

2、复制程序文件

3、将某些控件加入到全局应用程序缓存(GAC),比如第三方的控件或是自己定义的具有强名称的控件

4、安装时的默认设置项,比如程序的配置文件、或修改注册表等

5、创建快捷方式、软件的卸载

制作安装程序的工具比较多,常见的比如InstallShield、Wise Install、以及VS本身自带安装程序制作功能,前2个都是专业级的安装制作工具,所以安装文件也是巨大。这里我们推荐一款制作安装程序的软件Setup factory7.0,使用这个软件能够轻松的制作出一个专业的安装程序,它内置一种跟VBS类似的脚本语言,通过编写action脚本,能够实现比较强大的一些,比如从网上下载一些需要的安装文件。

对于Setup factory7.0的一般性使用这里就不详细介绍了,自己稍微摸索一下就知道了。我只介绍一下关于如何判断是否安装了.net framework及自动下载框架的安装文件并安装、如何修改注册表项、自定义安装界面等。

1、如何判断是否安装了.net framework

这里是判断注册表中是否存在框架的注册项。需要在Setup factory中的工程-操作的OnStartup事件中写如下代码:

--判断是否安装了.net框架

hasInstalled = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "Software//Microsoft//.NETFramework");
if hasInstalled == false then
 result = Dialog.Message("安装提示", "运行本软件需要安装.Net框架1.1版,是否从网络中下载并安装?", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON1)
 if result == IDYES then
  isExists = HTTP.TestConnection("http://www.zhangyongjun.com/fdown/uploadfile/dotnetfx.exe", 90, 80);
  if isExists == true then
   -- Show the StatusDlg
   StatusDlg.Show(MB_ICONINFORMATION, false);
   StatusDlg.ShowCancelButton(true, "取消");
   
   -- Set statusdlg title and message
   StatusDlg.SetTitle("下载所需文件 . . . ");
   -- Set meter range (max range = 65534)
   StatusDlg.SetMeterRange(0, 100);  
   -- Download a file from the internet to the user's computer
   -- Uses DownloadCallback() as the callback function
   HTTP.Download("http://www.zhangyongjun.com/fdown/uploadfile/dotnetfx.exe", SessionVar.Expand("%TempFolder%//dotnetfx.exe"), MODE_BINARY, 20, 80, nil, nil, DownloadCallback);
   
   -- Hide the StatusDlg
   StatusDlg.Hide();
   Shell.Execute(SessionVar.Expand("%TempFolder%//dotnetfx.exe"), "open", "", "", SW_SHOWNORMAL)
  else
   Dialog.Message("错误提示", "下载文件失败,可能服务器已停止服务。请从Microsoft网站上下载.Net Framework1.1。", MB_ICONEXCLAMATION);
   Application.Exit(0);
  end
 else
  Application.Exit(0);
 end
end

-- Callback function for HTTP.Download

function DownloadCallback (nDownloaded, nTotal, TransferRate, SecondLeft, SecondsLeftFormat, Message)
    -- Convert total and downloaded bytes into formatted strings
    sDownloaded = String.GetFormattedSize(nDownloaded, FMTSIZE_AUTOMATIC, true);
    sTotal = String.GetFormattedSize(nTotal, FMTSIZE_AUTOMATIC, true);
    -- Output time left, formatted.
    StatusDlg.SetMessage("正在下载文件 . . . 剩余时间: " .. SecondsLeftFormat);   
    -- Output formatted sizes to user through statusdlg status text
    StatusDlg.SetStatusText("已下载: " .. sDownloaded .. " / " .. sTotal);
    -- Set meter position (fraction downloaded * max meter range)
    StatusDlg.SetMeterPos((nDownloaded / nTotal) * 100);
end

2、操作注册表

在定制安装界面中,可以添加一个界面,选择界面类型,并且能够自定义界面上的操作事件,比如在OnPreload、OnNext、OnBack、OnCancel、OnHelp编写脚本以实现特定的功能,下面的代码是实现在自定义的配置设置界面中用户填写完配置信息后,点“下一步”时,将填写的信息写入到注册表,其中CTRL_EDIT_01等为编辑控件(这里是文本框)的ID。

-- 这些操作在点击“下一步”按钮时执行。

-- 提示:你可以在这里添加验证用户输入信息的操作
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software//FengcheSoft//TradeSystem");
tEditFieldServer = DlgEditField.GetProperties(CTRL_EDIT_01);
tEditFieldDBUser = DlgEditField.GetProperties(CTRL_EDIT_02);
--Debug.ShowWindow( true );

Registry.SetValue(HKEY_LOCAL_MACHINE, "Software//FengcheSoft//TradeSystem", "ServerName", tEditFieldServer.Text, REG_SZ);

Registry.SetValue(HKEY_LOCAL_MACHINE, "Software//FengcheSoft//TradeSystem", "DBUser", DlgEditField.GetProperties(CTRL_EDIT_02).Text, REG_SZ);
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software//FengcheSoft//TradeSystem", "DBPwd", DlgEditField.GetProperties(CTRL_EDIT_03).Text, REG_SZ);
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software//FengcheSoft//TradeSystem", "DBName", DlgEditField.GetProperties(CTRL_EDIT_04).Text, REG_SZ);

Debug.Print(tEditFieldServer.Text);

test = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software//FengcheSoft//TradeSystem", "ServerName", true);
Debug.Print(test);
-- 进入下一个屏幕
Screen.Next();

 

Setup factory是一种比较强大而简单的安装制作软件,大家可以好好研究一下,一定能够实现你想要的功能!

附:

软件介绍
Setup Factory 是一个强大的安装程序制作工具。提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序。可建立快捷方式,也可直接在 Windows 系统的注册表加入内容,还能在 Win.ini 和 System.ini 内加入设定值,更可以建立反安装选项等等。它内附的向导可以一步步的带领您做出漂亮又专业的安装程序。

转载地址:http://puupi.baihongyu.com/

你可能感兴趣的文章
pytorch(6)
查看>>
ubuntu相关
查看>>
C++ 调用json
查看>>
nano中设置脚本开机自启动
查看>>
动态库调动态库
查看>>
Kubernetes集群搭建之CNI-Flanneld部署篇
查看>>
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
手绘VS码绘(二):动态图绘制(码绘使用Processing)
查看>>
基于P5.js的“绘画系统”
查看>>
《达芬奇的人生密码》观后感
查看>>
论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
查看>>
基于“分形”编写的交互应用
查看>>
《融入动画技术的交互应用》主题博文推荐
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>
Piper Sandler为EverArc收购Perimeter Solutions提供咨询服务
查看>>
RMRK筹集600万美元,用于在Polkadot上建立先进的NFT系统标准
查看>>