gpt4 book ai didi

c# - 检测已安装的 Outlook 并动态加载 INterop.Outlook

转载 作者:太空宇宙 更新时间:2023-11-03 11:42:19 25 4
gpt4 key购买 nike

我在 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 模式和相关实践??

最佳答案

要检测是否安装了 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);
}
}
}

为避免动态加载互操作的问题,您应该为 Microsoft.Office.Interop.Outlook.Interop.dll 设置 Embed Interop Types 为 true

关于c# - 检测已安装的 Outlook 并动态加载 INterop.Outlook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4421176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com