Laden...

Drag&Drop EMail - Fehler bei PC's ohne Entwicklungsumgebung

Erstellt von BuTTers vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.377 Views
B
BuTTers Themenstarter:in
2 Beiträge seit 2013
vor 10 Jahren
Drag&Drop EMail - Fehler bei PC's ohne Entwicklungsumgebung

Liebe myCSharp-Benutzer,

Mein Problem:
Der Drag & Drop von einer E-Mail aus Outlook 2010 funktioniert auf einem PC ohne Visual Studio nicht. Auf meinem Arbeitsrechner funktioniert alles supi.

Eine Exception (siehe Anhang) bekomme ich hier:


        private void frmTest_DragDrop(object sender, DragEventArgs e)
        {
            try
            {
                EMAIL(e);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

die Methode "EMAIL()":


        private void EMAIL(DragEventArgs e)
        {
            try
            {
                Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();

                for (int i = 1; i <= oApp.ActiveExplorer().Selection.Count; i++)
                {
                    Object temp = oApp.ActiveExplorer().Selection[i];

                    if (temp is Microsoft.Office.Interop.Outlook.MailItem)
                    {
                        Microsoft.Office.Interop.Outlook.MailItem mailItem = (temp as Microsoft.Office.Interop.Outlook.MailItem);
                        string subject = mailItem.Subject.Replace(":", "");
                        //Gewünschte Properties auslesen
                        string strMsg = "";
                        strMsg += mailItem.EntryID + Environment.NewLine;
                        strMsg += mailItem.Subject + Environment.NewLine;
                        strMsg += mailItem.Body + Environment.NewLine;
                        label1.Text = strMsg;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
    }

Ich schätze mal, dass auf dem PC irgendwas fehlt. Nur was und wie schaffe ich es das es Funktioniert.

Mit internetten Grüßen
BuTTers

64 Beiträge seit 2012
vor 10 Jahren

Bei der Googlesuche findet man den Fehler bei Excel interop MissingMethodException.

Hier wird empfohlen das Zielframework von 4.5 auf 4.0 zu stellen... Ich weiß allerdings nicht in wie weit dich das bei deiner Anwendung einschränkt...

++Rekursion ++
(lat. , die) siehe Rekursion

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo BuTTers,

grundsätzlich gilt für Fehler, die nur auf bestimmten Rechnern auftreten: [FAQ] Programm läuft in anderer Umgebung nicht (richtig).

herbivore

S
80 Beiträge seit 2012
vor 10 Jahren

Servus, evtl. fehlt dir einfach das VSTO 4.0 (Visual Studio Tools for Office 4.0). Einfach auf dem Zielrechner installieren.

Unsere Kunden werden dazu gezwungen die VSTO 4.0, .NET 4.0 und Office 2007 PIA Redist zu installieren, wenn die es nicht auf den Rechnern haben.

Aber deine Fehlermeldung sieht mehr danach aus, dass die angesprochene DLL eine Funktion nicht beinhaltet, die auf dem Entwicklungsrechner ist, also auf .NET Framework 4.0 umsteigen.

Aber warum schaust du überhaupt nach, welche Email selektiert ist.
Schau dir das DragEventArgs e genauer an. Es besitzt ein Property mit dem Namen Data (von Type System.Windows.Forms.IDataObject), wo du die nötigen Informationen raus lesen kannst, wie die Datei heißt, die du verschiebst und zusätzlich hast du den kompletten Stream der Datei, so dass unabhängig von Outlook die Datei komplett rekonstruieren kannst, also mit Stream Interfaces speichern.

Der direkte Zugriff über die COM Interface von Outlook ist oft anfällig für Fehler und bringt meistens einen zum verzweifeln, da es an guter Dokumentation & Beispielen sowohl im Netz, als auch an Büchern fehlen.

----ehm............

B
BuTTers Themenstarter:in
2 Beiträge seit 2013
vor 10 Jahren

Bei der Googlesuche findet man den Fehler bei
>
.

Hier wird empfohlen das Zielframework von 4.5 auf 4.0 zu stellen... Ich weiß allerdings nicht in wie weit dich das bei deiner Anwendung einschränkt...

Danke 😉 Durch die Umstellung hat es funktioniert.