1

我已经使用 Inno-Setup 编写了代码来安装 2007 桌面 MSAccess 拆分数据库,并且包括 Access Runtime 2007。我尝试了几种使用数据库“运行”“AccessRuntime.exe”的变体,但仍然出现错误。以下是一些常量和部分:

MyAppName "SSDExpress"
DefaultDirName=C:\{#MyAppName}
OutputDir= C:\{#MyAppName}
MyAppExeName "setup.exe"


[Files]
Source: C:pathtofiles\SSDExpress.accde; DestDir: "{app}"; Flags: ignoreversion
Source: C:pathtofiles\SSDExpress_be.accdb; DestDir: "{app}"; Flags: ignoreversion
Source: C:pathtofiles\AccessRuntime.exe; DestDir: "{app}"; Flags: ignoreversion

我已经分别尝试了这 3 个运行代码中的每一个,但都没有成功。每次我收到与运行时相关的错误。

第一次尝试

[Run]
Filename:{app}\AccessRuntime.exe; Description:{cm:LaunchProgram,{#MyAppName}};Flags:
shellexec postinstall skipifsilent; Parameters: “””{app}\{#MyAppExeName}””/runtime”

第二次尝试

[Run]
Filename: Filename:{app}\{#MyAppExeName;Parameters: “/i””{app}\AccessRuntime.exe””/qn”

第三次尝试

[Run]
Filename: AccessRuntime.exe; Parameters: “/i””{app}\AccessRuntime.exe””/passive”

我究竟做错了什么?(该代码可以将所有文件放入 DefaultDirectory,但我仍然收到消息,它无法找到运行代码的“AccessRuntime.exe”。)

请原谅我在陈述我的问题时感到困惑。知道我以前从未编写过安装脚本可能会有所帮助。我唯一的经验是使用 MS Access 打包向导,我想我认为 Inno 会进行类似的设置。

为了澄清我想要做什么:我正在尝试获取一个脚本来为用户创建设置,我可以将其发送给他们,他们可以运行以安装桌面 MS Access 2007 数据库 (SSDExpress),这将需要 Access Runtime如果他们还没有访问权限,请运行。理想情况下,我想在他们的安装包中包含 Access Runtime,而不是下载。所以我希望安装程序安装程序,当他们访问它时,它将作为独立的桌面程序运行。我希望 FE 是独立的(与 PW accdr 文件相比),以便我可以根据需要更新程序更改。我提前感谢您的耐心等待。特里西亚

4

1 回答 1

2

“第一次尝试”是正确的,其他的都不正确。(或者至少语法是正确的;您必须自己发现传递给运行时的正确参数是什么。)

不过有两点需要注意:

  1. 这可能只是在此处发布它的副作用,但您的代码包含“智能”引号而不是标准引号。您必须将这些更改为标准报价才能正常工作。

  2. /runtime文件名和值中的参数之间没有空格Parameters

您需要做的第一件事是尝试使用您认为需要的参数从命令行自己运行它,并确保它有效。一旦您知道它可以从命令行运行,只需使用正确的语法让 Inno 在安装期间运行它即可。

于 2013-11-06T20:16:17.343 回答