1

几年前,我在 Windows XP 上使用 Access DB 开发了一个基于 VB 的 VS2005 应用程序,它一直运行良好,直到迁移到 Windows 7。我通过更改为 x64 平台重新构建了解决方案,同时修改了 Access DB有点导致解决方案中包含一个新的 Access DB 文件。当我在 VS2005 中调试时,我的 project\x86\Release 文件夹中有新版本的 DB,并成功访问了这个新版本。

问题是,一旦我创建了部署解决方案,部署的应用程序就会继续打开旧版本的访问数据库 (mdb) 文件。即使从已安装的文件夹中删除了 mdb,我也无法找到它从哪里打开旧版本的 DB。我在网络上进行了很多挖掘和研究,但无法找到解决这个问题的方法。

有人可以帮忙告诉我如何让我部署的应用程序打开新版本的数据库吗?

提前致谢

4

1 回答 1

0

听起来您不允许虚拟化-您知道吗?出于安全原因,在 XP(Vista 及更高版本)之后,Microsoft 不允许写入 Programs 文件夹,如果遇到尝试执行此操作的应用程序,则会复制尝试写入的文件(在您的情况下为 Access 数据库)并放置它隐藏在临时用户的某个地方(目前不记得确切的位置)。

例如,如果您在 .exe 文件的同一位置查看 Win 7 计算机上的数据库,我应该认为您会发现它未使用 - 由于它安装在计算机上,操作系统一直将请求重定向到读取/将您的数据库写入它为您创建的虚拟化副本。

所以,首先找到这个另一个副本(对不起,我目前在 Mac 上,不记得位置),看看它是否包含您的应用程序正在创建的数据。然后尝试替换您的新数据库(当然首先复制旧数据库)并查看您的应用程序是否可以读取/写入它。

然后是在应用程序安装期间处理数据库替换的问题。

但是,您应该认真考虑将数据库放置在未虚拟化的位置!

于 2013-03-10T16:06:11.933 回答