Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MS Access程序受运行为不同版本设计的c#代码的影响_C#_Ms Access_Deployment_Version - Fatal编程技术网

MS Access程序受运行为不同版本设计的c#代码的影响

MS Access程序受运行为不同版本设计的c#代码的影响,c#,ms-access,deployment,version,C#,Ms Access,Deployment,Version,我写了一个程序,可以在Access、Excel和其他一些程序之间转换数据。我拥有office 2016,并在我的代码中使用了相关的通信参考。我使用clickonce进行部署。在我的电脑上工作很好。当部署到具有不同版本office的其他应用程序时,它也可以正常工作 然而,在使用不同版本的office的计算机上使用后,以前在该计算机上工作的类似程序不再工作。我相信这可能是因为当我的程序安装时,它在本地计算机上注册了2016版的office dll,至少在访问的情况下,它是不向后兼容的。解决方案是以管

我写了一个程序,可以在Access、Excel和其他一些程序之间转换数据。我拥有office 2016,并在我的代码中使用了相关的通信参考。我使用clickonce进行部署。在我的电脑上工作很好。当部署到具有不同版本office的其他应用程序时,它也可以正常工作

然而,在使用不同版本的office的计算机上使用后,以前在该计算机上工作的类似程序不再工作。我相信这可能是因为当我的程序安装时,它在本地计算机上注册了2016版的office dll,至少在访问的情况下,它是不向后兼容的。解决方案是以管理员身份打开旧程序,我理解这允许这些程序将已注册的dll重置为构建它们的office的任何版本,但意味着我的程序不再工作

首先,我研究了引用隔离,但现在我明白Microsoft不允许您隔离任何office dll。关于如何防止我的程序干扰用户计算机上其他类似程序的任何想法

下面是运行旧程序时的错误消息:

“无法启动。 无法初始化Windows注册表。
重新运行Microsoft Access或Microsoft Office安装程序以重新安装。“

这是在计算机上运行Access(和Office)混合版本时出现的已知问题

您可以通过在其他计算机上使用运行时版本的Access来解决这个问题,但当您在其他Office应用程序中转移数据时,该选项可能不适合您的场景