好吧,这是我们办公室新机器上新安装的Windows 8.1。我们在其上安装了Office Professional Plus 2013,一切看起来都很美观。不过,我得到以下错误:Outlook Com没有注册
一切我已经研究说,有一个在注册表中的旧面貌值。 9.3,9.4等。但这台电脑从来没有什么,但它的Outlook 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盒以外的所有机器。我不知所措,我已经修复并重新安装了Professional Plus 2013套装,但无济于事。 com对象应该在istall上注册,我无法手动注册它。我试图在VS中瞄准X86无济于事。我一直在这个问题上打了几个星期,所以我很难过。有没有人解决这个问题,它不是一个价值:9.3/9.4注册表问题?
也许有办法做到这一点,不使用COM而是使用DLL?任何让这个用户离开地面的东西都会有帮助。谢谢。
在Windows 64Bit机器上你将不得不做1件事之一.. '1.'右键单击项目属性并将其设置为从'AnyCpu运行到x86'或'2.'确保.dll的'CopyLocal ='属性设置为true,如果您想确保它真的有效,创建一个'Dependencies'文件夹,并将该dll添加到它..然后从引用节点删除引用,并重新添加它指向'Dependencies'文件夹中的源..这也听起来像你引用不正确的版本的ComInterop Dll为您安装的Office版本 – MethodMan
感谢您的建议@MethodMan 不幸的是,正如我在OP中提到的那样,我的目标x86无济于事。在#2中我不知道你在说什么.dll,如果我查看我的引用,我不能将任何Outlook interloop程序集的CopyLocal设置为true,因为属性被锁定。 我试过两个程序集引用Microsoft.Office.Interlop.Outlook 15.0.0.0版本,我试过COM Micosoft Outlook 15.0对象库9.5版本。 这两种方法都适用于本地和其他机器,但不适用于相关包装盒。 – Andrew
分享到:[访问COM组件时出错](http://stackoverflow.com/q/12957595/993547)。 –