Inno Setup 制作安装程序[支持静默安装.NET环境]
2012-12-13 09:14
459 查看
1.贴源码
; 脚本由 Inno Setup 脚本向导 生成!
; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!
#define MyAppName "TestSet"
#define MyAppVersion "1.0"
#define MyAppPublisher "ZCF"
#define MyAppURL "http://www.zcfsky.com/"
#define MyAppExeName "TestApp.exe"
[Setup]
; 注: AppId的值为单独标识该应用程序。
; 不要为其他安装程序使用相同的AppId值。
; (生成新的GUID,点击 工具|在IDE中生成GUID。)
AppId={{A7293410-B577-4984-939A-4969DC799A5C}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}\测试程序\
UsePreviousAppDir=yes
DefaultGroupName=TestApp
AllowNoIcons=yes
OutputBaseFilename=setup
SetupIconFile=D:\安装程序\TestApp\book.ico
Compression=lzma
SolidCompression=yes
:管理员权限
PrivilegesRequired=admin
[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; OnlyBelowVersion: 0,6.1
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "D:\安装程序\TestApp\TestApp.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\安装程序\TestApp\TestApp.exe.config"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\安装程序\TestApp\readme.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\安装程序\TestApp\include\dotnetfx.exe"; DestDir: "{tmp}"; Check:IsNeedInstall ; CopyMode:onlyifdoesntexist;Flags: ignoreversion deleteafterinstall
; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\查看述文件"; Filename: "{app}\readme.txt"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon;
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
[code]
var
isNeedDF : Boolean;
function IsNeedInstall():Boolean;
begin
isNeedDF := true;
if (RegKeyExists(HKLM, 'Software\Microsoft\.NETFramework\policy\v2.0')) then
begin
isNeedDF := false;
Result := false;
end
else
Result := true;
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
pt:string;
ResultCode:Integer;
begin
if(CurStep=ssPostInstall) then
begin
if isNeedDF then
begin
pt:= ExpandConstant('{tmp}\dotnetfx.exe');
if(FileExists(pt)) then
begin
if(not Exec(pt,'/q:a /c:"install.exe /qb"','',SW_HIDE,ewWaitUntilTerminated,ResultCode)) then
begin
MsgBox('.NET运行环境安装失败,请手动安装!', mbInformation, MB_OK);
end;
end
else
begin
MsgBox('未找到文件'+pt, mbInformation, MB_OK);
end;
end
else
MsgBox('You Neednt Install .NET Framework 2.0', mbInformation, MB_OK);
end;
end;
[Messages]
BeveledLabel= CoSail Software Co,Ltd.
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: unchecked nowait postinstall skipifsilent
2.关键位置解释
[Tasks]代码段Flags: unchecked 去掉默认就是选择的
[Files]代码段中加上Check:IsNeedInstall ;就是一个检查是否处理的判断,其中IsNeedInstall是在[Code]代码段中自定义的一个函数。
[Run]代码段Flags加一个unchecked就是安装完毕,"运行本程序"不勾选,默认没有这一项。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhchfsky/archive/2010/11/27/6039748.aspx
; 脚本由 Inno Setup 脚本向导 生成!
; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!
#define MyAppName "TestSet"
#define MyAppVersion "1.0"
#define MyAppPublisher "ZCF"
#define MyAppURL "http://www.zcfsky.com/"
#define MyAppExeName "TestApp.exe"
[Setup]
; 注: AppId的值为单独标识该应用程序。
; 不要为其他安装程序使用相同的AppId值。
; (生成新的GUID,点击 工具|在IDE中生成GUID。)
AppId={{A7293410-B577-4984-939A-4969DC799A5C}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}\测试程序\
UsePreviousAppDir=yes
DefaultGroupName=TestApp
AllowNoIcons=yes
OutputBaseFilename=setup
SetupIconFile=D:\安装程序\TestApp\book.ico
Compression=lzma
SolidCompression=yes
:管理员权限
PrivilegesRequired=admin
[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; OnlyBelowVersion: 0,6.1
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "D:\安装程序\TestApp\TestApp.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\安装程序\TestApp\TestApp.exe.config"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\安装程序\TestApp\readme.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\安装程序\TestApp\include\dotnetfx.exe"; DestDir: "{tmp}"; Check:IsNeedInstall ; CopyMode:onlyifdoesntexist;Flags: ignoreversion deleteafterinstall
; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\查看述文件"; Filename: "{app}\readme.txt"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon;
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
[code]
var
isNeedDF : Boolean;
function IsNeedInstall():Boolean;
begin
isNeedDF := true;
if (RegKeyExists(HKLM, 'Software\Microsoft\.NETFramework\policy\v2.0')) then
begin
isNeedDF := false;
Result := false;
end
else
Result := true;
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
pt:string;
ResultCode:Integer;
begin
if(CurStep=ssPostInstall) then
begin
if isNeedDF then
begin
pt:= ExpandConstant('{tmp}\dotnetfx.exe');
if(FileExists(pt)) then
begin
if(not Exec(pt,'/q:a /c:"install.exe /qb"','',SW_HIDE,ewWaitUntilTerminated,ResultCode)) then
begin
MsgBox('.NET运行环境安装失败,请手动安装!', mbInformation, MB_OK);
end;
end
else
begin
MsgBox('未找到文件'+pt, mbInformation, MB_OK);
end;
end
else
MsgBox('You Neednt Install .NET Framework 2.0', mbInformation, MB_OK);
end;
end;
[Messages]
BeveledLabel= CoSail Software Co,Ltd.
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: unchecked nowait postinstall skipifsilent
2.关键位置解释
[Tasks]代码段Flags: unchecked 去掉默认就是选择的
[Files]代码段中加上Check:IsNeedInstall ;就是一个检查是否处理的判断,其中IsNeedInstall是在[Code]代码段中自定义的一个函数。
[Run]代码段Flags加一个unchecked就是安装完毕,"运行本程序"不勾选,默认没有这一项。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhchfsky/archive/2010/11/27/6039748.aspx
相关文章推荐
- Inno Setup 制作安装程序[支持静默安装.NET环境]
- Inno Setup制作最简单的安装程序
- 【新手】单机环境下打包.net安装程序
- Inno Setup (安装程序制作)
- .net制作安装程序总结
- C# 批处理制作静默安装程序包
- .net制作安装程序总结- -(转载)
- [转载].NET制作安装卸载程序
- 安装程序制作(将.net 部署到没有安装.net Framework的计算机上)
- inno setup 软件安装包 如何可以自动检测、下载并安装.NET环境
- C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装 (续集Tomcat 配置)
- .Net项目制作安装程序
- lzg_ad: 基于.Net安装部署向导制作安装程序
- 使用.net制作程序安装程序
- inno setup软件--教你如何制作一个漂亮的安装程序
- Java桌面应用安装部署、安装程序制作(exe4j + Inno Setup)——之一:综述
- .Net程序打包安装与卸载制作 ——怎样制作.Net卸载程序?
- 对在.NET中制作PDA安装程序的补充
- C#程序不用安装.NET环境运行(让C#程序脱离.net框架)
- .NET程序安装包制作(WinForm)