在 C# 中针对多个 office/outlook 版本

Targeting multiple office/outlook versions in C#

我想在一个 C# 项目中针对多个 office/outlook 版本,特别是 Outlook 2010 及更高版本。到目前为止,我已经在我的 C# 项目中向 Microsoft.Office.Interop.Outlook 和 Microsoft.Office.Core 添加了一个 COM 引用;这在我的 2013 开发系统上运行良好,但在 2010 系统上它可以预见地抛出一个错误:

System.IO.FileNotFoundException: 无法加载文件或程序集 'Microsoft.Office.Interop.Outlook, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' 或其依赖项之一。该系统找不到指定的文件。 文件名:'Microsoft.Office.Interop.Outlook, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'

Office 2010 (v14) 和 2013 之间的 API 广泛兼容我的需要,在两者之间切换应该没有问题。当然,如果我使用解释性语言加载Outlook COM,代码版本不会发生变化。

我知道 NetOffice "wrapper" 围绕各种 Office 版本,但如果有使用内置 tools/approaches 的更简单的解决方案,我不愿意使用它。

在安装了您计划支持的最低版本 Outlook 的机器上创建互操作 dll,然后在您的主要开发机器上添加对该互操作 dll 的非版本特定引用。