2011-05-24 90 views
1

好的...我们可以在应用程序目录中创建一个文件夹(数据)并将数据库粘贴在那里的VB6日过去了(c:\ program files \ myApplication \ Data \ MyAppData.s3db)。我不想用Sql Server使用vb.net!在.Net中,我知道特殊文件夹和User Application Data文件夹。如果我将这种类型的文件夹添加到我的包和部署项目中,并包含作为我们空白数据库的文件,则该文件夹将被创建,并且数据库将不在其中。如果我使用“应用程序数据”文件夹,则由于文件夹和所有子文件都是只读文件,所以我放弃了写入功能。我卡住了。我无法在代码中的C:\ Program Files(x 86)中创建一个新文件夹,然后通过为每个表运行创建表查询从头开始创建数据库。什么是好的应用程序部署?似乎没有人能为此答复。任何帮助,将不胜感激。使用Sqlite DB部署VB.Net Winforms应用程序

回答

0

如果我使用的应用程序数据文件夹,我失去[原文]写能力为文件夹和所有子文件是只读

有是只读的,独立的所有用户Application Data文件夹每个用户的Application Data文件夹。每个用户的应用程序数据文件夹是而不是只读—你可以写给他们。

我通常所做的是将一个空白数据文件部署到我的Program Files文件夹中,并在用户第一次运行我的应用程序时将此文件复制到用户的App Data文件夹中。

+1

这适用于基于每个用户的数据库的正常工作,但是如果我们想要像许多其他应用程序一样在多个用户中使用数据库呢?仍在寻找使用NSIS脚本。 – Sean 2011-05-27 17:25:52

0

对于非管理员用户,全局应用程序数据文件夹是只读的。但每个用户都有自己的应用程序数据文件夹,您可以一定写入该文件夹,并且是存储应用程序特定数据的首选位置。不幸的是,这些文件夹默认是隐藏的。

+0

我明白UAC的所有特性......我们正在做的是编写一个使用SQLite DB的应用程序。我们希望将这些数据访问到多个用户。这违背了UAC目前的政策。我正在研究编写我自己的NSIS脚本,以便我可以绕过使用包和部署项目来安装应用程序。 – Sean 2011-05-27 17:24:24