Outlook interop GetSharedDefaultFolder операция завершилась неудачно из-за проблемы с реестром или установкой.
У меня есть следующий код, хорошо работающий на моем компьютере разработки (Windows XP с Office 2010). Но когда я запускаю исполняемый файл на ПК с Windows 7 с Office 2010, я получаю следующую ошибку:
"Операция не удалась из-за проблем с реестром или установкой. Перезагрузите Outlook и повторите попытку. Если проблема не устранена, переустановите компьютер."
Ошибка происходит в этой строке:
Dim inbox As Folder = ns.GetSharedDefaultFolder(получатель, OlDefaultFolders.olFolderInbox)
У меня есть отдельное приложение, работающее на том же производственном компьютере, который использует Microsoft.Офис.Прогноз.Взаимодействие для преобразования .MSG файлы для .PDF, который работает без проблем.
Imports Microsoft.Office.Interop.Outlook log = New cLog() Dim AppKeys As IDictionary = ConfigurationManager.GetSection("AppKeys") Dim app As New Microsoft.Office.Interop.Outlook.Application() Dim box As String log.Write("Starting to retrieve mail.") Try box = AppKeys("mailbox") tempLoc = Environment.CurrentDirectory & "\" & ConfigurationManager.AppSettings("TempLoc") Dim ns As Microsoft.Office.Interop.Outlook.NameSpace = app.Session log.Write("Namespace is: " & ns.CurrentProfileName) Dim recipient As Recipient = ns.CreateRecipient(box) log.Write("recipient is: " & recipient.Name) recipient.Resolve() log.Write("recipient resolved") Dim inbox As Folder = ns.GetSharedDefaultFolder(recipient, OlDefaultFolders.olFolderInbox) log.Write("Got inbox") Dim subject As String Dim mailCount As Int32 = 0 log.Write("There are " + inbox.Items.Count.ToString() + " Emails in " + box) For Each mm As MailItem In inbox.Items If Not subject Is Nothing Then For Each attach As Attachment In mm.Attachments attach.SaveAsFile(tempLoc & filename & attach.FileName.Substring(attach.FileName.Length - 4, 4)) Next ''Save email message as msg and create idx file for it filename = filename.Substring(0, filename.Length - 2) & "_" & count + 1 mm.SaveAs(tempLoc & filename & ".msg", OlSaveAsType.olMSG) End If Next Catch ex As System.Exception log.Write("Excpetion getting mail: " & ex.Message) End Try app.Quit()
Любые мысли будут очень оценены.
Спасибо,
тшаффер