2012-05-31 48 views
5

我正在尝试使用最新的inno安装程序来部署我的程序。看起来我不能(也不建议)将我的程序安装到Program Files文件夹,因为它会给予的限制(例如,我的程序总是会遇到使用修改数据库的程序部分的问题,除非它以一个管理员)。我读了一些地方,我们应该问inno安装程序在CSIDL_APPDATA安装我们的程序,但我真的不熟悉inno安装程序。我如何使用Inno安装程序来执行此操作?为所有用户安装应用程序和数据库

+3

可能您误解了您阅读的内容,实际上它可能会建议将您的数据文件部署在CSIDL_APPDATA中,并将您的程序部署到程序文件中。 –

回答

9

应用程序本身应安装到{pf}(Program Files)下的文件夹中。 应用程序数据(或数据库)应放入{commonappdata}下面的文件夹中。如果数据库将被普通用户修改,那么您需要设置此文件夹的权限(使用Permissions参数)。如果它是用户特定的,他们可以将默认值复制到用户的appdata文件夹并进行修改。

[Dirs] 
Name: {commonappdata}\i-Catcher Console; permissions: everyone-modify admins-full; 

当使用具有内置到数据库本身的UI的Access应用程序时,会出现复杂情况。在这种情况下,两个位置都一样糟糕({commonappdata}/blah边际更好),但您需要根据需要设置权限。

+0

但如果我把数据库和应用程序放到不同的文件夹中,它会产生问题,因为在我的C#代码中,我只是使用String connString =“Data Source = recipes.db”;这意味着recipes.db应该和主可执行文件位于同一个文件夹中,不是吗? – imin

+0

反正在各种情况下都会失败。您应该修复它以确定应用程序数据文件夹并使用完全限定的路径。 – Deanna

+1

emmm ..我怎么在c#中做到这一点?我的意思是像这样的字符串connString =“数据源=”+ installedfolder +“recipes.db” – imin

相关问题