Inno Setup是一个开源的,商业的,快捷的脚本打包工具。

具体打包流程根据界面提示就可以搞定,下面讲解几个注意事项

1.在安装包进行安装的过程当中,很多程序都需要修改配置信息,这就要求我们在安装完成那一刻调用一个窗体程序来修改配置信息,那么这应该怎么来编写打包脚本呢?

首先最好在编辑脚本以前就应该把修改配置文件信息的exe文件打包进入安装包,比如我们现在想调用一个WindowsFormsApplication1.exe文件,首先把它打包进入安装包,如下:

Source: "D:\C#\暑假\XmlDeal\WindowsFormsApplication1\bin\Release\WindowsFormsApplication1.exe"; DestDir: "{app}"; Flags: ignoreversion

然后在[Run]段添加如下代码:

[Run]
Filename: "{app}\WindowsFormsApplication1.exe";
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent

这样就可以在程序安装成功前一刻调用该程序修改配置文件,修改成功以后,才安装完成。

2.如何处理安装文件夹

我们的安装文件如果文件和文件夹的路径与Debug或者Release不相同,安装的程序就无法正常运行,下面就是如何处理文件夹。

比如一个Log文件夹下有一个LogInfo,LogError子文件夹,子文件夹有文件

我们应该这样编辑其打包文件夹脚本。

Source: "C:\Users\G50\Desktop\MAS\MASClient\bin\Debug\Log\LogError\*"; DestDir: "{app}\Log\LogError"; Flags: ignoreversion
Source: "C:\Users\G50\Desktop\MAS\MASClient\bin\Debug\Log\LogInfo\*"; DestDir: "{app}\Log\LogInfo"; Flags: ignoreversion

3.如何处理.net版本问题

我们写的.net程序都有对应的.net版本,如果用户电脑没有相应的版本,程序无法正常运行,这就需要我们打包时把.net安装包打包进去,编辑好脚本,在安装时,检测用户电脑有没有对应的.net版本信息,如果有,则正常安装,否则就安装.net,安装完毕之后.net安装包自动删除。

代码如下:

Source: "D:\dotNetFx40_Full_x86_x64.exe"; DestDir: "{tmp}"; Flags: ignoreversion

添加[Code]段代码

[Code]
function CheckDotNet4_0():boolean;
begin
Result:=not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\.NETFramework\policy\v4.0');
end;

function InitializeSetup(): Boolean;
var Path:string;
ResultCode: Integer;
begin
if CheckDotNet4_0() then
begin
if MsgBox('系统检测到您没有安装.Net Framework4.0,是否立刻下载并安装?', mbConfirmation, MB_YESNO) = idYes then
begin
ExtractTemporaryFile('dotNetFx40_Full_x86_x64.exe');
Exec(ExpandConstant('{tmp}\dotNetFx40_Full_x86_x64.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
Result := true;
end
else
begin
MsgBox('没有安装.Net Framework4.0环境,无法运行【XX】程序,本安装程序即将退出!',mbInformation,MB_OK);
Result := false;
end;
end
else
begin
Result := true;
end;
end;

Inno Setup打包注意事项的更多相关文章

  1. Inno Setup 打包工具总结

    Inno Setup 打包工具总结 分类: Install Setup 2013-02-02 15:44 2386人阅读 评论(0) 收藏 举报 最近打包用到了Inno setup,在这个过程中容易犯 ...

  2. 使用Inno Setup 打包.NET程序,并自动安装.Net Framework

    使用Inno Setup 打包.NET程序,并自动安装.Net Framework http://www.cnblogs.com/xiaogangqq123/archive/2012/03/19/24 ...

  3. (Inno setup打包)检测系统是否已安装程序,若已安装则弹出卸载提示的代码

    原文 http://bbs.itiankong.com/thread-30983-1-5.html 有6天没研究pascal代码了,昨天晚上突然来了灵感,终于解决了苦思冥想好几天没能解决的问题, 因此 ...

  4. Inno Setup打包的程序提升为管理员权限

    Inno Setup打包的程序在Win7 64位系统上安装,安装步骤最后一步若选中运行程序,会跳出一个错误提示框. 这是因为64位win7系统运行程序时需要管理员权限,而打包的文件并没有这个权限就试图 ...

  5. Inno Setup打包添加和去除管理员权限

    原文:Inno Setup打包添加和去除管理员权限 添加管理员权限 1.在[Setup]节点添加 PrivilegesRequired=admin 2.进入安装目录,找到文件SetupLdr.e32, ...

  6. inno setup 打包exe程序

    inno setup 用于打包生成安装程序, 是通过的一个脚本 可以将 exe 执行文件以安装的形式,解压,添加依赖,创建快捷方式. 例如,我们写了个winform,我们怎么通过安装的形式,给客户的机 ...

  7. Inno Setup 打包的文件以管理员权限执行

    最近发现一个问题,就是Inno Setup打包的程序安装完毕后执行需求管理员权限的程序的时候会失败( inno createprocess   须要提升),解决问题的最简单办法就是打包的后的程序也以管 ...

  8. 【程序打包工具 Inno Setup】CreateProcess 失败:代码 740(Inno Setup打包的程序提升为管理员权限)

    原文参考 https://www.cnblogs.com/SnailProgramer/p/4243666.html http://blog.csdn.net/x356982611/article/d ...

  9. Inno Setup CreateProcess 失败:代码 740(Inno Setup打包的程序提升为管理员权限)

    原文参考 https://www.cnblogs.com/SnailProgramer/p/4243666.html http://blog.csdn.net/x356982611/article/d ...

随机推荐

  1. Mac/Windows开发跨平台.NET Core 控制台程序

    自从微软开始在Github上开源搞.NET Core后,.NET的跨平台逐渐就成真了.多年使用各种语言,说实话还是csharp用起来最舒服.不过现在的工作环境里使用它的机会比较少,大部分时候只是用来写 ...

  2. 关于在git添加远程地址的过程中遇到的问题

    问题产生的过程 我根据菜鸟教程的步骤,做了如下操作: 1.打开安装文件夹中的git-bash程序 2.设置username和email 3.添加远程地址 结果如下: 之后通过百度知道要先git ini ...

  3. 团队作业4——第一次项目冲刺(Alpha版本)6th day

    一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 24点的游戏输入是点击我们给的图片然后会输入相应的数字,之前的所做的出 现了一点问题,在把数字删掉重新输入就不行,这个问题仍然 ...

  4. 团队作业3-需求改进&原型设计

    选题:实验室报修系统 实验室设备经常会发生这样或那样的故障,靠值班人员登记设备故障现象,维护人员查看故障记录,进行维修,然后登记维修过程与内容,以备日后复查,用这种方式进行设备运营管理,它仅仅起到一个 ...

  5. 201521123056 《Java程序设计》第8周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 1.1 思维导图: 2. 书面作业 本次作业题集集合 1. List中 ...

  6. 201521123016 《Java程序设计》第8周学习总结

    1. 本周学习总结 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 1.删除元素的时候从最后一个元素开始,避免删除元素后位置发生变化而导致有些元素没有删 ...

  7. 201521123005 《java程序设计》 第七周学习总结

    1. 本周学习总结 参考资料: XMind 2. 书面作业 Q1ArrayList代码分析 1.1 解释ArrayList的contains源代码 ArrayList的contains源代码 /** ...

  8. 如何在分布式环境中同步solr索引库和缓存信息

    天气依旧很好,主要是凉快.老习惯,我在北京向各位问好. 搜索无处不在,相信各位每天都免不了与它的亲密接触,那么我想你确实有必要来了解一下它们,就上周在公司实现的一个小需求来给各位分享一下:如何在分布式 ...

  9. 全局光照:光线追踪、路径追踪与GI技术进化编年史

    全局光照(Global Illumination,简称 GI), 作为图形学中比较酷的概念之一,是指既考虑场景中来自光源的直接光照,又考虑经过场景中其他物体反射后的间接光照的一种渲染技术. 大家常听到 ...

  10. Jquery第二篇【选择器、DOM相关API、事件API】

    前言 前面已经介绍过了Jquery这门语言,其实就是一个javaScript的库-能够简化我们书写的代码-.本博文主要讲解使用Jquery定位HTML控件[定位控件就是获取HTML的标签],使用Jqu ...