展望的COM未注册

问题描述 投票:3回答:2

好了,所以这是一个新的机器在我们的办公室的窗户8.1的全新安装。我们安装了Office专业增强版2013就可以了,一切看起来红润。不过,我得到以下错误:

enter image description here

我研究的一切说,有一个在注册表中的旧面貌值。 9.3,9.4等。但是这台电脑从未有过什么,但展望2013年它和每一个注册表值,我能找到的是9.5。

我正在开发一个应用程序时,我们送客户端的更新是预写我们发送一个标准的电子邮件。在C#中的相关代码如下所示:

string Body = Head + FileList + details + EmailPart + Signature;

Outlook.Application OLapp = new Outlook.Application();
MailItem eMail = OLapp.CreateItem(Outlook.OlItemType.olMailItem); //this is the line that causes the error.
eMail.Subject = "subject";
eMail.To = "";
eMail.HTMLBody = Body; //text created above
eMail.Importance = OlImportance.olImportanceNormal;

eMail.Display();

这工作每台机器上的办公室,除了这64位W8框。我不知所措,我已经修复并重新安装了专业增强版2013包无济于事。 COM对象应在istall注册,有没有办法,我发现手动注册。我试着在VS针对X86无济于事。我一直在敲打在这个问题上了几个星期,所以我很为难。有没有人解决了这个问题,即它不是一个值:9.3 / 9.4的注册表问题?

也许有一个办法做到这一点不使用,而不是一个DLL使用COM?任何事情来得到该用户离地面将是有益的。谢谢。

c# email com outlook
2个回答
3
投票

解决了!

由于采用了答案贴here我被放在正确的轨道寻找我的解决方案上。

总之,问题不在于有多个键或注册表无效密钥,它是有一个键在注册表中的一个特定位置丢失。具体地,在HKEY_CLASSES_ROOT \类型库\

在长:我的错误指出我朝着键{0006001-0000-0000-C000-000000000046}一切我能在网上找到然后朝键HKEY_CLASSES_ROOT \接口指出{0006001-0000-0000-C000-000000000046}

最常见的问题是,当你有多个版本的条目,9.5,9.4等,您必须删除无效的版本。对于我的问题,只有一个版本,9.5。

我搜索了其他{0006001-0000-0000-C000-000000000046}项,他们每个人都只有一个版本,9.5

什么上面链接的答案希望我做的是去除HKEY_CLASSES_ROOT \类型库无效版本{0006001-0000-0000-C000-000000000046}虽然一个问题...关键是不存在的。 AHA!

我创建了使用手动HKEY_CLASSES_ROOT \ {类型库00062FFF-0000-0000-C000-000000000046}(A则引用MSOUTL.OLB我的程序使用键)打造出来的缺少关键的关键。 (我不知道的方式来复制在注册表编辑器的整个密钥)

一旦我做了,我需要重新启动计算机,重新启动一次程序完美的作品。

显然,Office365错过在安装过程中这个位置。值得庆幸的是,我可以把这个近一个月之久的瘟疫,与我质疑我的代码在我身后开始了!希望这可以帮助别人,将来别人!


0
投票

我的情况是这样的项:HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes下\ {类型库00062FFF-0000-0000-C000-000000000046}有Win32和Win64的子项中定义,而我只有64位Office安装,所以删除的Win​​32子解决了这一问题。

© www.soinside.com 2019 - 2024. All rights reserved.