早上好... 需要帮忙... 我正在尝试使用 inno setup 。但我没有太多编程经验。
想法是...安装程序,最后安装必要的组件(.net、mysql 连接器、mysql 服务器...) 有一个程序(先看看程序是否存在,然后安装),在任何一个程序中(无论是否退出),程序都会继续安装...
.net 运行良好并且正在运行 当我去安装 mysql 连接器时,它最初给出的代码是 192,它不是有效的 Win32
在阅读了一些帖子后,我设法解决了这个问题。 此时,出现安装窗口。 由于我已经安装了连接器,因此我将单击“取消”... “您确定要取消 mysql 连接器吗?” 我单击“是...”,然后单击“完成”。 当它应该关闭 mysql 安装程序并返回到程序安装程序时,我收到错误 193 %1 不是有效的 win 32 应用程序..
我不知道我还能做什么... 有人可以帮助我吗? 请...
[Run]
Filename: "{app}\dotnet-sdk-8.0.203-win-x64.exe"; Flags: skipifdoesntexist; BeforeInstall: CheckDotNet
Filename: "{app}\mysql-connector-net-8.3.0.msi"; Flags: skipifdoesntexist; BeforeInstall: InstallMySQLConnectorNet
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent runascurrentuser
[Code]
function IsDotNetInstalled(): Boolean;
var
DotNetVersion: Cardinal;
begin
DotNetVersion := GetWindowsVersion;
Result := (DotNetVersion >= $0008000300); // 8.0.3
end;
function IsMySQLConnectorInstalled(): Boolean;
begin
Result := FileExists(ExpandConstant('{app}\mysql-connector-net-8.3.0.msi'));
end;
procedure CheckDotNet;
begin
if not IsDotNetInstalled() then
begin
MsgBox('A instalação do .NET Runtime 8.0.3 é necessária para continuar. A instalação será cancelada.', mbError, MB_OK);
Abort;
end;
end;
[Code]
function IsMySQLConnectorNetInstalled: Boolean;
begin
Result := RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\MySQL AB\MySQL Connector/Net');
end;
procedure InstallMySQLConnectorNet;
var
ResultCode: Integer;
begin
if not IsMySQLConnectorNetInstalled then
begin
if not ShellExec('', ExpandConstant('{app}\mysql-connector-net-8.3.0.msi'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
begin
MsgBox('Falha ao iniciar a instalação do MySQL Connector .NET 8.3.0.', mbError, MB_OK);
Abort;
end;
end;
end;
function InitializeSetup: Boolean;
begin
Result := True;
end;
即使我也面临同样的问题。我刚刚添加
shellexec
作为 [运行] 部分中的标志之一。然后我就没有遇到那个错误了。