我在VS2010中有一个Windows窗体应用程序。它引用了Interop.Outlook(2003)。然后,我重新安装了Windows XP和VS2010,但没有安装Outlook。
现在,项目没有编译。
我想这个,如果Outlook没有安装在我的程序执行的机器上,我的应用程序将无法运行。
我需要知道我是否检测到Outlook已安装,并动态加载Interop.Outlook.dll(用于在.NET 4中使用Outlook PIA或嵌入式互操作类型)。
如果计算机安装了Outlook(2003,2007,2010,可能需要代码来检测版本并兼容Outlook版本),则应用程序可以正常运行Outlook。
如果计算机未安装Outlook,则应用程序无法正常运行Outlook。
任何关于它的示例源代码或goog模式和实践??
答案 0 :(得分:2)
要检测Outlook是否已安装,请查找“Outlook.Application”ProgID。
从安装程序中,查看注册表中的HKEY_CLASSES_ROOT\Outlook.Application
在运行时,您可以这样做:
using System;
using Microsoft.Office.Interop.Outlook;
class Program
{
static void Main(string[] args)
{
var outlookType = Type.GetTypeFromProgID("Outlook.Application");
if (outlookType == null)
{
Console.WriteLine("Not installed.");
}
else
{
var app = Activator.CreateInstance(outlookType) as Application;
Console.WriteLine(app.Name);
}
}
}
为了避免动态加载互操作的问题,您应该为Embed Interop Types
Microsoft.Office.Interop.Outlook.Interop.dll
设置为true
答案 1 :(得分:0)
检查安装程序API以检测Outlook的安装状态或使用所述方法之一here。