我目前正在开发一个C#项目,需要访问Outlook。该项目在两台不同的计算机上进行开发,其中一台安装了Office,而另一台则没有。我之前曾询问如何针对Outlook COM对象编译我的项目,有一个评论建议我编译时使用了Office主互操作程序集(PIA)。在我下载的Office 2007 PIA中,有一个msi文件,可以安装不同部分的Office所需的多个PIA。但我的问题是似乎并没有发生这种情况。在我没有安装Office的电脑上,输入以下内容后:
msiexec /i o2007pia.msi
在提示符处,Windows安装程序启动,并显示一个消息框,上面显示“请稍候,Windows正在配置Microsoft Office 2007 Primary Interop Assemblies。收集所需信息”,同时显示大约33%的进度条,之后消息框消失,此后
gacutil -l microsoft.office.interop.outlook
安装Office 2007 PIAs没有结果(我确实得到了一个版本为10.0.4504.0的结果,这是之前使用错误的Office版本尝试安装的结果。但是Office 2007 PIAs的主要版本是12)。
我看到了几种可能的解释,但我都不太相信:
GAC无法处理同一程序集的多个版本,因此不会允许我安装更新版本。
某种方式我没能满足要求。这些要求基本上是XPsp2和.Net 1.1或以上版本,我都有。要求部分还提到,该下载适用于Office 2007,而我没有安装它,但我不认为这是必需的。这是因为它没有作为条件指定,同时在我的原始问题的评论中,Hans Passant非常确定PIAs可以专门用于开发而不需要安装Office,因此将Office作为先决条件是没有意义的。
那么,有人知道为什么Office 2007 PIAs安装不正确,或者有什么我可以做来接近答案吗?如果需要更多信息,请告诉我。谢谢。