2009-07-01 72 views
5

我在开发计算机上安装了Office 2007。我正在为使用Office 2003的客户服务器构建一个小应用程序,需要进行一些互操作。我的程序将作为夜间批处理过程中的计划任务运行。办公室互操作:使用Office 2007在计算机上开发2003 PIA

无论我做什么,我都找不到Access interop程序集的版本11.0,以便在服务器上运行。

我试过明确下载并在我的机器上安装它们。我尝试在服务器上安装2007互操作程序集(完整的Office 2007安装无法实现)。我尝试了几个不同的COM引用。我试图在服务器上查找COM对象以在Visual Studio项目中引用。我已经尝试了太多其他的小东西来在这里列出它们。

这是怎么回事吗?我怎样才能得到这个工作?

+0

我假设你检查了C:\ WINDOWS \ assembly \ GAC \ Microsoft.Office.Interop.Access? – 2009-07-01 21:51:02

+0

是的,我做到了。 – 2009-07-01 21:51:37

+0

我不知道你正在编程的环境,但是你必须使用早期绑定吗?是否没有可以使用的后期绑定形式,即Office版本是独立的? – 2009-07-01 22:06:40

回答

1

我发现唯一的方法来做到这一点,即使在.Net v2及以上版本中并排安装两个版本,也是添加对PIA(而不是COM库)的引用。如果Frameork v1.1并排存在,它实际上会绑定到正确的版本。

0

您不能将PIA从服务器复制到您的机器(到本地文件夹),然后添加对该副本的引用?

如果您想以另一种方式避免使用PIA并使用ComImport代替。安德鲁白教堂在他的博客中详细介绍:

Add-ins for Multiple Office Versions without PIAs

更新(从评论): 如果无法找到服务器上的访问PIA,你可以尝试以下方法:

  • 从这里下载了Office 2003 PIA设置:Office 2003 Update: Redistributable Primary Interop Assemblies

  • 在命令行解压缩自解压可执行文件(/?将列出选项):

    >O2003PIA.exe /C /T:C:\PIA 
    
  • 运行所提取的MSI全启用日志记录:

    >msiexec -i O2003PIA.msi /l*vx log.txt 
    

    ,并检查日志接入互操作程序集,并提示是否任何地方出了错安装。 此步骤的另一种方法是使用MSI解包器工具来生成装配体。

相关问题