我编写了一个程序,可以在Access,Excel和其他一些程序之间切换数据。我有办公室2016,并在我的代码中使用了相关的comm引用。我已经使用clickonce进行部署。在我的电脑上正常工作。当部署到具有不同版本的办公室的其他人时,它也可以正常工作。
然而,在具有不同版本的办公室的计算机上使用之后,之前在该计算机上工作的类似程序不再起作用。我相信这可能是因为当我的程序安装完毕后,它会在本地计算机上注册2016版本的office dll,至少在访问的情况下,它不向后兼容。解决方案是以管理员身份打开旧程序,据我所知,这些程序允许这些程序将注册的dll重置为它们所构建的任何版本的办公室,但这意味着我的程序不再有效。
首先我查看了参考隔离,但我现在明白微软不会允许你隔离任何办公室dll。关于如何防止我的程序干扰用户计算机上的其他类似程序的任何想法。
下面的是旧程序运行时的错误消息:
"无法启动。 无法初始化Windows注册表。 重新运行Microsoft Access或Microsoft Office安装程序以重新安装。"
答案 0 :(得分:1)
这是在计算机上运行Access(和Office)的混合版本时的已知问题。
您可以通过在其他计算机上使用Access的运行时版本来绕过它,但是当您围绕其他Office应用程序移动数据时,该选项可能不适合您的方案。