Inno Setup软件制作把.NetFramework打进安装包中

  如何使用Inno Setup 工具进行打包这里就不在进行说明,只要百度网上有很多文章。这里主要是介绍一下如何将.NetFramework打入安装包。
  下面演示的是以.NET Framework4.7.2为例。

Inno Setup打包.Net Framework到安装包方式脚本:

[Files]
Source: "F:\WinForms学习\InnoSetUpDemo\InnoSetUpDemo\bin\Debug\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
//1.将NET Framework4.7.2添加到安装包中,这个路径是.Net安装包在我们自己电脑的位置。
//2.DestDir: "tmp";应用安装的时候会解压到系统的临时文件tmp中,Flags: ignoreversion 忽略安装版本
Source: "C:\Users\Administrator\Desktop\DotNetFX472\NDP472-KB4054530-x86-x64-AllOS-ENU.exe"; DestDir: "tmp"; Flags: ignoreversion
[Code]
//程序启动函数
function InitializeSetup(): Boolean;
  var ResultCode: Integer;
  begin
  //判断是否安装了NETFramework4.7.2  大家注意,正确是SOFTWARE\\Microsoft\\.NETFramework\\v4.0.30319\\SKUs\\.NETFramework,Version=v4.7.2
  if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.7.2') then
    begin
    //返回值 继续执行
    Result :=true;
    end
  else
    //若用户没有安装
    begin
    //弹出一个对话框
    if MsgBox('系统检测到您没有安装.Net Framework4.7.2运行环境,是否立即安装?', mbConfirmation, MB_YESNO) = idYes then
      begin
        //要把.net安装包,从我们的安装包中取出来,放到系统的临时文件夹中
        ExtractTemporaryFile('NDP472-KB4054530-x86-x64-AllOS-ENU.exe');
  
        //我们再运行这个安装包(运行1个.exe文件)
        Exec(ExpandConstant('{tmp}\NDP472-KB4054530-x86-x64-AllOS-ENU.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);

        //返回值 继续执行
        Result :=true;
      end
    else 
      begin
        MsgBox('未能成功安装.Net Framework4.0运行环境,系统将无法运行,本安装程序即将退出!',mbInformation,MB_OK);
        Result := false;
      end
  end;
  
end;

上面脚本中都有注释,就不在具体解释了。需要注意的就是好多文章都说检查.Net的注册表路径是:

 'SOFTWARE\Microsoft\.NETFramework\policy\v4.7.2'

我是试过不好用,后来换了脚本中的路径就可以了。运行的时候如果用户电脑没有安装指定的.NetFrameWork版本就会弹出提示,如下图:
在这里插入图片描述

选择“是”就会开始安装.NetFramework,安装完成之后继续安装应用,好了就介绍这么多了。

下面是我参考的视频和资料:
B站视频:如何使用Inno Setup软件制作.exe安装包
文章:用Inno Setup来解决.NetFramework安装问题

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值