由于“应用程序”引用缺少

时间:2015-07-14 14:43:07

标签: c# outlook

我正在尝试编写一些c#代码与Outlook 2010进行交互。我目前正在使用this example from Microsoft

我的代码如下:

using System;
using System.Text;          // StringBuilder
using System.Diagnostics;   // Debug

using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;

using Outlook = Microsoft.Office.Interop.Outlook;

namespace DirectReports
{
    public class Program
    {
        private void GetManagerDirectReports()
        {
            Outlook.AddressEntry currentUser = Application.Session.CurrentUser.AddressEntry;
            //Outlook.AddressEntry currentUser = Outlook.Application.Session.CurrentUser.AddressEntry;
            if (currentUser.Type == "EX")
            {
                Outlook.ExchangeUser manager = currentUser.GetExchangeUser().GetExchangeUserManager();
                if (manager != null)
                {
                    Outlook.AddressEntries addrEntries =
                        manager.GetDirectReports();
                    if (addrEntries != null)
                    {
                        foreach (Outlook.AddressEntry addrEntry
                            in addrEntries)
                        {
                            Outlook.ExchangeUser exchUser = addrEntry.GetExchangeUser();
                            StringBuilder sb = new StringBuilder();
                            sb.AppendLine("Name: " + exchUser.Name);
                            sb.AppendLine("Title: " + exchUser.JobTitle);
                            sb.AppendLine("Department: " + exchUser.Department);
                            sb.AppendLine("Location: " + exchUser.OfficeLocation);
                            Debug.WriteLine(sb.ToString());
                        }
                    }
                }
            }
        }
    }
}

Microsoft示例提到“如果使用Visual Studio测试此代码示例,则必须首先添加对Microsoft Outlook 15.0对象库组件的引用”。我正在使用Visual Studio Express 2013 for Windows Desktop。我没有看到15.0版本的对象库,而是添加了14.0版本(我觉得它对于Outlook 2010来说是正确的):

references included

当我尝试构建时,出现以下错误:

The name 'Application' does not exist in the current context

我读了几个引用,表明Application应该是上述对象库的一部分,但显然它不能在这里工作。有人可以建议我做错了吗?

3 个答案:

答案 0 :(得分:6)

您可以创建新的Application对象:

var appOutlook = new Microsoft.Office.Interop.Outlook.Application();

然后将其用作:

Outlook.AddressEntry currentUser = appOutlook.Session.CurrentUser.AddressEntry;

答案 1 :(得分:1)

您使用的是错误的项目。 在Visual Studio中创建新项目时,请使用Outlook加载项模板。 (模板 - > Visual C# - > Office - > Outlook)。

在这段代码中,他们的Application.Session会像你期望的那样工作。

或者您应该像这样创建一个新的应用程序对象。 var outlook = new Microsoft.Office.Interop.Outlook.Application(); 并使用outlook.Session。

答案 2 :(得分:-1)

在文件开头添加以下行:

 using Microsoft.Office.Interop.Outlook;

或者只是使用Outlook别名预先添加任何Outlook对象声明。

您可能会发现C# app automates Outlook (CSAutomateOutlook)示例项目很有帮助。