Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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
C# 通过Office Automation支持不同的Office版本_C#_.net_Office Interop - Fatal编程技术网

C# 通过Office Automation支持不同的Office版本

C# 通过Office Automation支持不同的Office版本,c#,.net,office-interop,C#,.net,Office Interop,我们创建了一个应用程序,它使用Office2007(Excel2007)从Excel工作表中读取数据。然而。我注意到,当我想在安装了Office 2003的系统上部署应用程序时,它会崩溃,因为此版本的Office需要引用其他PIA(和其他dll) 我是否需要编译不同版本的应用程序才能支持不同版本的Office,或者是否有更优雅的解决方案来解决此问题 我使用Visual Studio 2010(C#)和.Net 4.0平台。您可以参考多个版本的office的PIA,并在运行时确定从何处路由呼叫。当

我们创建了一个应用程序,它使用Office2007(Excel2007)从Excel工作表中读取数据。然而。我注意到,当我想在安装了Office 2003的系统上部署应用程序时,它会崩溃,因为此版本的Office需要引用其他PIA(和其他dll)

我是否需要编译不同版本的应用程序才能支持不同版本的Office,或者是否有更优雅的解决方案来解决此问题


我使用Visual Studio 2010(C#)和.Net 4.0平台。

您可以参考多个版本的office的PIA,并在运行时确定从何处路由呼叫。

当您使用.Net 4时,您可以使用“嵌入式”PIA(也称为“无PIA”)。更改Office引用上的选项,使“嵌入互操作类型”为真

只要您只使用您部署的计算机上支持的Office功能,就可以了

它还意味着: -您不必担心PIA本身不在目标机器上
-原始COM界面中的
变体
类型的任何方法或属性现在都在代码中使用
动态
表示,这可以使您的生活更简单

,具体取决于您是否有任何其他要求(您说从excel读取数据),您可以使用OLEDB驱动程序连接到excel文件并以SQL方式查询它

例如:

这会让我两年前的生活轻松多了。在vs05中编写vsto addins是一件麻烦事。这正是您不应该做的:这实际上是一个好主意。我也想这样做,因为在我的公司,我们安装了不同Office版本的系统。我希望我的应用程序支持任何版本。