Следуя совету Ханса Пассанта, теперь я отвечаю на свой вопрос с подробностями моего решения. Я смог скомпилировать и запустить свой проект на компьютере без установленного офиса. Основная проблема состояла в том, чтобы сообщить Visual Studio, какой интерфейс можно ожидать от COM-объекта. Это было решено путем нахождения файла первичной сборки интерфейса (PIA) для внешнего вида. Этот процесс лучше описан в этом вопросе, но короткая история состоит в том, что у меня уже были офисные PIA на моем компьютере, в этом месте:
C:\Program Files\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA
Я использую VS2010 pro, я не знаю, включены ли файлы в другие версии. Затем нужно было скопировать соответствующий файл в исходную папку моего проекта, включив его в мой проект и систему контроля версий, и сделать ссылку на него. После этого я смог использовать типы COM Outlook в своем проекте и скомпилировать его без ошибок. Я также могу запустить свой проект без установленного офиса. Это достигается путем попытки создания экземпляров соответствующих объектов COM и перехвата исключения, если офис не установлен. В следующем примере кода показано, как:
using Outlook = Microsoft.Office.Interop.Outlook;
namespace Foo
{
public class Bar
{
public void Quux()
{
try
{
// try to instantiate outlook COM object.
Outlook.Application outlookApp = new Outlook.Application();
// if it works, fine. Proceed
...
}
// If we catch a COMException, assume no office installed. Deal accordingly.
catch (System.Runtime.InteropServices.COMException)
{
...
}
}
}
}