Inno setup Inno设置-允许修改数据库
我的应用程序包括一个Inno setup Inno设置-允许修改数据库,inno-setup,Inno Setup,我的应用程序包括一个db,用户可以通过GUI向db添加数据。因此,我需要授权用户修改db。我尝试了所有选项,但仍然不允许授权。 这里,这是我尝试实现的一个示例(在“允许”列中选中修改权限): 以下是我当前的代码: #define MyAppName "aaa" #define MyAppVersion "1.0" #define MyAppExeName "aaa.exe" [Setup] AppId={{...-...-...-...-...} AppName={#MyAppName} A
db
,用户可以通过GUI向db
添加数据。因此,我需要授权用户修改db
。我尝试了所有选项,但仍然不允许授权。
这里,这是我尝试实现的一个示例(在“允许”列中选中修改权限):
以下是我当前的代码:
#define MyAppName "aaa"
#define MyAppVersion "1.0"
#define MyAppExeName "aaa.exe"
[Setup]
AppId={{...-...-...-...-...}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
DefaultDirName={pf}\{#MyAppName}
DisableProgramGroupPage=yes
OutputDir=C:\...\output
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Dirs]
Name: "{app}\Logs"; Permissions: everyone-modify
[Files]
Source: "C:\...\aaa.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\...\list_files\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Permissions: everyone-modify
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
如何通过设置的创建过程向用户授予数据库访问权限?谢谢你首先你不应该将数据存储到安装文件夹中。我听从了你的建议,但仍然不允许许可。我在你的脚本中看到了
{app}\Logs
。我是inno setup
的新手,我应该从我的代码中删除[Dirs]
部分吗?@Martin Prikryl,基于你的上述评论,我设法解决了我的问题。感谢不要授予所有用户对程序文件文件夹的写入权限!这是一种破解,不是解决方案。另请参阅。感谢您的评论。正如我所说,我是一个新手,也许我的以下问题可以是基本的:我知道我必须将我的db
放在AppData\Local
文件夹中,但如果要使用应用程序,我的exe
必须放在Program Files
文件夹中,或者可以与db
一起放在AppData\Local
文件夹中机器的所有用户都应将其保存在程序文件中。如果只供安装它的用户使用,它可以位于AppData\Local
中。根据Martin Prikryl的评论,我将DestDir
切换为{localappdata}
,而不是{app}
[Files]
Source: "C:\...\aaa.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\...\folder_files\*"; DestDir: "{localappdata}\name_application\folder_files\"; Flags: ignoreversion recursesubdirs createallsubdirs