Hallo,
Ich bin ein C#/.NET Neuling. Ich soll für meinen Chef eine Anwendung oder eine Office AddIn breitstellen, dass aus seinem Postfach E-Mail Anhänge von einem bestimmten Absender speichert. Daher bin ich auf NetOffice (http://netoffice.codeplex.com/) gestoßen. Ich gehe auch davon aus, dass es mit diesem Framework relativ simple sein wird. Aber ich bekomme die Integration schon nicht hin.
Kann mir jemand sagen, was für Verweise, Usings und Implementierungen ich brauche, um ein NetOffice.Outlook.Api.Outlook Object zu erstellen?
Ich bekomme immer folgende Fehlermeldung:> Fehlermeldung:
Der Interoptyp "NetOffice.OutlookApi.Application" kann nicht eingebettet werden. Verwenden Sie stattdessen die entsprechende Schnittstelle.
MfG
Momo
Die Beispiele unter NetOffice - MS Office in .NET - Outlook_Examples_EN klappen bei Dir nicht?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hi,
jetzt hat NetOffice doch eine echt nette Doku... Warum liest du die nicht?
NetOffice - MS Office in .NET - Documentation
NetOffice - MS Office in .NET - Outlook_Examples_EN
Die beiden Links sollten dir behilflich sein.
LG
Habe ich gelesen. Und ich meine Erkenntnis ist: Ich brauche einen Verweis auf die NetOffice.dll, OfficeApi.dll und OutlookApi.dll. Diese Verweise habe ich. Nun wollte ich mich an dem Expample01 für Outlook orientieren, da in diesem Beispiel schon die Mails als MailItem-Object vorliegen.
Ich habe also in meiner Anwendung eine neue Klasse erstellt und die gleichen Usings verwendet, wie es im Beispiel der Fall ist.
Dann habe ich den Quelltext aus der Methode buttonStartExample_Click([...]) kopiert und in meiner Klasse eingefügt. Das VS unterstreicht dann alle Objekte aus dem Namespace Outlook (NetOffice.OutlookApi) und gibt die oben angegebene Fehlermeldung aus.
Ich bin wie gesagt ein Neuling und habe bisher nur ein bisschen mit Java "gespielt". Habe diese Fehlermeldung auch bereits gegoogled, aber nichts gefunden, dass auf mein Problem passt oder was ich verstehe und auf mein Problem übertragen könnte. Bin jetzt schon seit zwei Tagen mit einem Kollegen, der seit Jahren in VS entwickelt am werkeln, aber er kennt auch keine Lösung. 🙁
Hi,
poste mal den QuellCode. Im ersten Beispiel ist garkein Button 😕
LG
Klar, es gibt doch den Button "Start Example".
Hier der Quellcode aus Beispiel1:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using ExampleBase;
using NetOffice;
using Outlook = NetOffice.OutlookApi;
using NetOffice.OutlookApi.Enums;
namespace OutlookExamplesCS4
{
public partial class Example01 : UserControl , IExample
{
IHost _hostApplication;
public Example01()
{
InitializeComponent();
}
#region IExample Member
public void RunExample()
{
// its an example with an own visual control
// checkout buttonStartExample_Click
}
public string Caption
{
get { return _hostApplication.LCID == 1033 ? "Example01" : "Beispiel01"; }
}
public string Description
{
get { return _hostApplication.LCID == 1033 ? "Inbox Folder" : "Posteingang"; }
}
public void Connect(IHost hostApplication)
{
_hostApplication = hostApplication;
}
public UserControl Panel
{
get { return this; }
}
#endregion
#region UI Trigger
private void buttonStartExample_Click(object sender, EventArgs e)
{
// start outlook
Outlook.Application outlookApplication = new Outlook.Application();
// get inbox
Outlook._NameSpace outlookNS = outlookApplication.GetNamespace("MAPI");
Outlook.MAPIFolder inboxFolder = outlookNS.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
// setup gui
listViewInboxFolder.Items.Clear();
labelItemsCount.Text = string.Format("You have {0} e-mails.", inboxFolder.Items.Count);
// we fetch the inbox folder items.
foreach (COMObject item in inboxFolder.Items)
{
// not every item in the inbox is a mail item
Outlook.MailItem mailItem = item as Outlook.MailItem;
if (null != mailItem)
{
ListViewItem newItem = listViewInboxFolder.Items.Add(mailItem.SenderName);
newItem.SubItems.Add(mailItem.Subject);
}
}
// close outlook and dispose
outlookApplication.Quit();
outlookApplication.Dispose();
}
#endregion
}
}
Und hier der Quellcode, der bei mir nicht funktioniert:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using NetOffice;
using Outlook = NetOffice.OutlookApi;
using NetOffice.OutlookApi.Enums;
namespace PlayingVideosFromCamera
{
public partial class OutlookFileSave
{
Outlook.Application outlookApplication = new Outlook.Application();
}
}
Hallo,
hast du dir mal die NetOffice Toolbox runtergeleaden?
Da ist ein Project-Wizard enthalten, der dir ein Grundgerüst für ein Applikation mit den richtigen Verweisen etc. auf Outlook erstellt.
Viele Grüße
Das startet bei mir leider nicht.> Fehlermeldung:
Es wurde versucht, eine Assembly von einer Netzwerkadresse zu laden, was in früheren Versionen von .NET Framework zum Ausführen der Assembly als Sandkastenassembly geführt hätte. In dieser Version von .NET Framework wird die CAS-Richtlinie standardmäßig nicht aktiviert, dieser Ladevorgang kann daher gefährlich sein. Wenn Sie nicht beabsichtigen, durch diesen Ladevorgang eine Sandkastenassembly zu erstellen, aktivieren Sie den loadFromRemoteSources-Schalter.
Das Programm wurde beendet.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hi,
sry - mein erster Post war nicht hilfreich 😛
Geh mal unter die Verweise - wähle OutlookApi und deaktiviere "Interop-Typen einbetten" - das sollte helfen...
LG
Das hilft, danke!
Habe in der Zwischenzeit auch schon das Tool zum laufen bekommen (in einer VM) und habe mir dort eine Projektmappe erstellen lassen.
Also vielen Dank für die Hilfe! 👍