Office互操作:在Office 2007的计算机上使用2003 PIA进行开发

时间:2009-07-01 21:44:16

标签: .net ms-access interop .net-2.0 ms-office

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

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

我已尝试在我的计算机上明确下载并安装它们。我尝试在服务器上安装2007互操作程序集(完整的Office 2007安装是不可能的)。我尝试了几种不同的COM引用。我试图在服务器上寻找COM对象,以便在visual studio项目中引用。而且我已经尝试了太多其他的小东西来列出这些。

这里发生了什么?我怎样才能使这个工作?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

如果您想采用其他方式,可以避免使用PIA并使用ComImport代替。 Andrew Whitechapel在他的博客中有详细信息:

  

Add-ins for Multiple Office Versions without PIAs

更新(来自评论): 如果您无法在服务器上找到Access 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
    

    并检查日志以查看Access互操作程序集,并进一步提示安装是否出错。 作为此步骤的替代,您可以使用MSI解包器实用程序来进行组装。