Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Drag&Drop EMail - Fehler bei PC's ohne Entwicklungsumgebung
BuTTers
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

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

beantworten | zitieren | melden

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
Attachments
private Nachricht | Beiträge des Benutzers
EifelYeti
myCSharp.de - Member

Avatar #avatar-3408.jpeg


Dabei seit:
Beiträge: 66
Herkunft: Eifel

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo BuTTers,

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

herbivore
private Nachricht | Beiträge des Benutzers
Schildkroete
myCSharp.de - Member



Dabei seit:
Beiträge: 88

beantworten | zitieren | melden

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............
private Nachricht | Beiträge des Benutzers
BuTTers
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

Zitat von EifelYeti
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...

Danke ;) Durch die Umstellung hat es funktioniert.
private Nachricht | Beiträge des Benutzers