Installation Inno安装过程在安装后未执行
我在inno设置中编译了多个程序,即 Sql Server .Net framework 3.5 水晶报告 Sql脚本 我面临的问题是,执行脚本的代码所在的过程在安装之前的程序之后不会执行。如果取消之前的程序,则执行该程序Installation Inno安装过程在安装后未执行,installation,inno-setup,setup-deployment,Installation,Inno Setup,Setup Deployment,我在inno设置中编译了多个程序,即 Sql Server .Net framework 3.5 水晶报告 Sql脚本 我面临的问题是,执行脚本的代码所在的过程在安装之前的程序之后不会执行。如果取消之前的程序,则执行该程序 [Files] Source: "E:\Inno Data\Inno_Setup\Prerequisites\dotnetfx35\NDP451-KB2858728-x86-x64-AllOS-ENU.exe"; DestDir: {tmp}; AfterInstall:
[Files]
Source: "E:\Inno Data\Inno_Setup\Prerequisites\dotnetfx35\NDP451-KB2858728-x86-x64-AllOS-ENU.exe"; DestDir: {tmp}; AfterInstall: InstallFramework
Source: "E:\Inno_Setup\Prerequisites\CrystalReports105\CRRuntime_64bit_13_0_5.msi"; DestDir: {tmp}; AfterInstall: InstallCrystalReports
Source: "E:\Prerequisites\SQLServer2008R2SP2\SQLEXPRWT_x64_ENU.exe"; DestDir: {tmp}
;SQL Script Files
Source: "E:\SQLInstallTEST\Scripts\RCabSoft.sql"; DestDir:"{app}\Scripts"
[Run]
Filename: "{tmp}\SQLEXPRWT_x64_ENU.exe"; Parameters: "/ACTION=Install /INSTANCENAME=MSSQLSERVER /QS /HIDECONSOLE /INDICATEPROGRESS=""False"" /IAcceptSQLServerLicenseTerms /SQLSVCACCOUNT=""NT AUTHORITY\SYSTEM"" /SQLSYSADMINACCOUNTS=""builtin\users"" /SKIPRULES=""RebootRequiredCheck"" "; Check: isWin64();
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\CRRuntime_64bit_13_0_5.msi"" /qb"; WorkingDir: {tmp};
Filename: "{tmp}\NDP451-KB2858728-x86-x64-AllOS-ENU.exe"; parameters: "/SILENT /NOCANCEL"; AfterInstall: sqlscript;
[Code]
procedure sqlscript;
var
ResultCode: Integer;
OutputText: String;
begin
if FileExists(ExpandConstant('{pf32}\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\SSMS.exe')) then
begin
ExtractTemporaryFile('RCabSoft.sql');
// Execute SQL Update Scripts
Exec('SqlCmd.exe', ' -e -E -S .' + ExpandConstant(' -i "{tmp}\RCabSoft.sql"'), '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;
end;
首先,您应该检查目标系统上是否尚未安装这些先决条件。然后,如果您想中断他们的安装链,请使用脚本代码执行。我能想到的唯一方法是检查刚刚执行的安装程序的退出代码,最好是从PrepareToInstall事件方法中执行。@TLama。。。。好吧,我已经粘贴了所需的代码…检查是在真实的代码中…但主要的问题是程序没有执行…对不起,我在第一次阅读时没有收到你的问题。您的意思是sqlscript过程不执行吗?我仍然对你描述的行动顺序有点迷茫。在任何情况下,都应该检查Exec函数调用的结果以及它返回的退出代码。从我现在所能说的来看,您缺少指向SqlCmd.exe的路径。我面临着同样的问题。有什么解决办法吗?