我已经使用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”
第3次尝试
[Run]
Filename: AccessRuntime.exe; Parameters: “/i””{app}\AccessRuntime.exe””/passive”
我做错了什么? (该代码可以将所有文件存入DefaultDirectory,但仍然会收到无法找到运行代码的“AccessRuntime.exe”的消息。)
请原谅我说出问题的困惑。知道我之前从未编写过安装脚本可能会有所帮助。我唯一的经验是使用MS Access Packaging Wizard,我想我认为Inno将会设置类似的设置。
澄清我想要做的事情:我正在尝试获取一个脚本来为用户创建一个设置,我可以发送给他们,他们可以运行以安装桌面MS Access 2007数据库(SSDExpress),这将需要如果Access Runtime尚未访问,则运行Access Runtime。理想情况下,我想在安装包中包含Access Runtime,而不是下载。所以我希望安装程序安装程序,然后当它们访问它时,它将作为一个独立的桌面程序运行。我希望FE是独立的(与PW accdr文件相比),以便我可以根据需要更新程序更改。 我提前感谢你的耐心等待。特里西娅
答案 0 :(得分:2)
“第一次尝试”是正确的,其他是不正确的。 (或者至少语法是正确的;你必须自己发现传递给运行时的正确参数是什么。)
但有两点需要注意:
这可能只是在此处发布它的副作用,但您的代码包含“智能”引号而不是标准引号。您必须将这些更改为标准报价才能生效。
文件名与/runtime
值中的Parameters
参数之间没有空格。
您需要做的第一件事是尝试使用您认为需要的参数从命令行自行运行它,并确保这样做。一旦你知道它可以从命令行运行,只需要使用正确的语法让Inno在安装过程中运行它。