【发布时间】:2013-03-09 20:51:53
【问题描述】:
我已经阅读了无数关于这个主题的帖子,但无法将我的大脑包裹在整个事情上。我有一个旧的 VB6 应用程序,它曾经安装在根目录的文件夹中。该文件夹中有子文件夹:
\data 用于访问数据库的子文件夹
\quotes 将存储用户生成的 Word 文档和
\backup 我的程序定期备份 mdb 的副本
效果很好,生活也很简单。现在,当我们尝试在 Windows 7 和 Windows 8 上安装时,程序会安装到程序文件 (x86) 文件夹中。程序运行良好,但所有数据库更新和 word 文件都存储在 users 文件夹中的虚拟存储中,这不是我们想要的。
我知道为什么会发生这种情况,并且我知道我需要修改我的程序以适应 Windows 7/8。有人可以就以下操作给我一个明确的解释/建议:
我知道“用户”下的 appdata 文件夹是存储数据库/word 文件/备份的推荐位置。但是,在我隐藏的系统上,我希望用户可以轻松访问它(不隐藏),所以我在想 MyDocuments 文件夹?
我读过这个帖子:Where should I store application specific settings?,这让我对如何在代码中找到文件/位置有了一些了解,尽管目前尚不清楚如何找到 MyDocuments。 谁能帮忙?
这就是我变得更加困惑的地方。如果我想使用 MyDocuments\CompanyName 之类的东西,甚至是上面链接中提到的 Appdata 文件夹,我如何告诉包/部署向导将 mdb 文件和上面提到的文件夹安装到这个特定文件夹中? 我可以使用 PDW 中的 Appdata 或 MyDocuments 文件夹的宏吗?我在 XP 机器上,所以我的路径与 Windows 7/8 机器不同。
任何帮助/见解将不胜感激。
【问题讨论】:
-
将应用程序转储到有趣的地方,例如系统驱动器根目录下的目录,让所有用户成为管理员或高级用户以及大量的 appcompat 垫片,让很多人假装 WinXP 是 Win9x 机器.世界要复杂得多,因为这些技术在安全性方面留下了巨大的漏洞,所以 PDW 现在只对简单的应用程序有用。
-
那么您是说使用 PDW 没有简单的方法可以将 mdb 文件/文件夹安装到用户的 MyDocument 文件夹或 AppData 文件夹中吗? Inno 会让事情变得更容易吗?
-
就我个人而言,我会像瘟疫一样避免 Inno。它可能很强大,但您也可以轻松创建易碎的设置,从而“破坏”同一台 PC 上的其他应用程序。没有安装程序可以安装到用户的文件夹中,因为它无法知道哪些用户或哪些用户将登录并期望使用您的应用程序。
-
这里有一个想法:如果您只有每个用户的数据(没有共享数据库或全局设置),请使用 PDW 来构建您的设置,将所有内容都放在 Program Files 下。在您的应用程序中进行“首次运行”检测和操作,以创建每个用户文件夹并将数据从 Program Files 文件夹中的主/模板副本复制到该文件夹中。 - 糟糕,我看到 Cody 已经在下面提出了这个建议。
-
您也可以以类似的方式处理共享(每台机器)数据。向您的应用程序添加另一个“首次机器运行”检测和操作。如果每台机器的文件夹和文件不存在,则通过命令行参数重新运行提升自己。在此运行中,您会看到参数,验证您是否以管理员身份运行,然后创建 ProgramData 子文件夹,在其上设置所需的安全性,并将每台计算机的文件复制到那里。
标签: deployment vb6