Freigeben über


Problembehandlung in Office zur Laufzeit

Aktualisiert: November 2007

Wenn beim Erstellen der Projektmappe Fehlermeldungen von Microsoft Office angezeigt werden oder die Endbenutzer von Fehlermeldungen berichten, kann die Ursache eines der folgenden Probleme sein.

Common Language Runtime oder Microsoft .NET Framework konnte nicht geladen werden

Dieses Problem führt zu folgender Fehlermeldung:

Die Common Language Runtime konnte nicht durch <Anwendung> geladen werden. Kontaktieren Sie Ihren Administrator für weitere Hilfe.

Die Version von Microsoft .NET Framework auf dem Computer des Endbenutzers muss mindestens der Version auf dem Computer entsprechen, auf dem die Projektmappe entwickelt wurde. Weitere Informationen über das Installieren von .NET Framework und der Common Language Runtime finden Sie auf der Microsoft .NET Framework downloads-Seite.

Benutzerdefinierte Makros erfordern die Common Language Runtime

Dieses Problem führt zu folgender Fehlermeldung:

Die benutzerdefinierten Makros in diesem Dokument setzen die Installation der Common Language Runtime, Version 2.0, voraus. Kontaktieren Sie Ihren Administrator für weitere Hilfe.

Mit den benutzerdefinierten Makros ist hier die verwaltete Assembly gemeint. Auf dem Computer des Endbenutzers ist u. U. eine Version von Microsoft .NET Framework installiert, die nicht mit der Projektmappe kompatibel ist. Sie müssen auf dem Computer des Endbenutzers eine Version von Microsoft .NET Framework installieren, die mindestens der Version entspricht, mit der Sie die Projektmappe entwickelt haben. Die neue Version kann parallel zur bestehenden Version installiert werden. Weitere Informationen über das Installieren von .NET Framework und der Common Language Runtime finden Sie auf der Microsoft .NET Framework downloads-Seite.

Sicherheitsrichtlinien erlauben keine Ausführung der Assembly

Dieses Problem führt zu folgender Fehlermeldung:

Die aktuellen .NET-Sicherheitsrichtlinien lassen nicht zu, dass <assembly> von dem Ordner <path> ausgeführt wird. Ändern Sie die Sicherheitsrichtlinien auf Ihrem Computer nicht. Die .NET-Sicherheitseinstellungen unterliegen der Kontrolle Ihres Administrators oder des Entwicklers, der die benutzerdefinierten Makros programmiert hat. Sie können jedoch das Dokument bearbeiten und speichern. Kontaktieren Sie Ihren Administrator oder den Autor dieses Dokuments für weitere Hilfe.

Mit den benutzerdefinierten Makros ist hier die verwaltete Assembly gemeint. Die Assembly ist nicht vertrauenswürdig und könnte gefährlich sein. Wenn Sie genau wissen, dass die Assembly sicher ist, müssen Sie ihr in den .NET-Sicherheitsrichtlinien des Benutzers volle Vertrauenswürdigkeit gewähren, damit sie ausgeführt werden kann. Weitere Informationen finden Sie unter Gewusst wie: Gewähren von Berechtigungen für Ordner und Assemblys (2003 System).

Dokument darf eine Assembly aufgrund der Sicherheitsrichtlinien nicht laden

Dieses Problem führt zu folgender Fehlermeldung:

Die aktuellen .NET-Sicherheitseinstellungen erlauben <document> nicht, benutzerdefinierte Makros zu laden. Ändern Sie die Sicherheitsrichtlinien auf Ihrem Computer nicht. Die .NET-Sicherheitseinstellungen unterliegen der Kontrolle Ihres Administrators oder des Entwicklers, der die benutzerdefinierten Makros programmiert hat. Sie können jedoch das Dokument bearbeiten und speichern. Kontaktieren Sie Ihren Administrator oder den Autor dieses Dokuments für weitere Hilfe.

Mit den benutzerdefinierten Makros ist hier die verwaltete Assembly gemeint. Am wahrscheinlichsten ist, dass das Dokument von einem nicht vertrauenswürdigen Speicherort oder von einem E-Mail-Anhang aus geöffnet wurde und u. U. gefährlich ist. Wenn Sie genau wissen, dass das Dokument sicher ist, speichern Sie es auf dem Computer des Benutzers, und öffnen Sie es dann. Nachdem es auf dem Computer gespeichert wurde, befindet sich das Dokument in der Zone Arbeitsplatz. Diese ist voll vertrauenswürdig. Wenn es sich bei dem Dokument um einen E-Mail-Anhang handelt, befindet es sich in der Internetzone. Diese ist nicht voll vertrauenswürdig.

Eine weitere mögliche Erklärung ist, dass die richtige Version von Microsoft .NET Framework auf dem Computer installiert war, aber vor Ausführung der Projektmappe entfernt wurde. Wenn der Benutzer zwei .NET Framework-Versionen parallel installiert und dann eine Version deinstalliert, wird diese Sicherheitsmeldung angezeigt anstelle eines Hinweises, dass die erforderliche Version von .NET Framework nicht installiert ist. Um die Projektmappe auszuführen, müssen Sie .NET Framework installieren.

Weitere Informationen finden Sie unter Sicherheitsanforderungen für die Ausführung von Office-Projektmappen (2003 System).

Eine Sicherheitsausnahme wird angezeigt, obwohl die Projektassembly als voll vertrauenswürdig eingestuft ist

Falls Sie eine Sicherheitsausnahme erhalten, obwohl Sie sicher sind, dass die Hauptassembly des Projekts als voll vertrauenswürdig eingestuft ist, kann es sein, dass eine Assembly, auf die verwiesen wird, versucht, eine Aktion auszuführen, für die sie nicht die erforderlichen Berechtigungen hat. Sie müssen Assemblys, auf die verwiesen wird, manuell die erforderlichen Berechtigungen gewähren.

Wenn ein Projekt auf einem Entwicklungscomputer erstellt wird, wird allen Assemblys, auf die verwiesen wird, im Ausgabeordner des Projekts die Ausführungsberechtigung gewährt. Nur der Hauptassembly des Projekts wird automatisch die volle Vertrauenswürdigkeit gewährt.

Die Assembly konnte nicht gefunden oder geladen werden.

Dieses Problem führt zu folgender Fehlermeldung:

Die Anpassungsassembly wurde nicht gefunden oder konnte nicht geladen werden. Sie können jedoch das Dokument bearbeiten und speichern. Kontaktieren Sie Ihren Administrator oder den Autor dieses Dokuments für weitere Hilfe.

Führen Sie zur Beseitigung dieses Fehlers einen der folgenden Vorgänge aus:

  • Vergewissern Sie sich, dass der Benutzer Zugriff auf den Speicherort der Assembly hat und die genannte Assembly vorhanden ist. Weitere Informationen finden Sie unter Übersicht über Assemblys in Office-Projektmappen.

  • Wenn die Assembly verfügbar ist, prüfen Sie, ob in Word oder Excel eine Anpassung durchgeführt wird, z. B. als ein Add-In, Smarttag oder SmartDocument, bei der explizit eine Version der .NET Framework-CLR (Common Language Runtime) geladen wird, die mit der Visual Studio Tools for Office-Laufzeit nicht kompatibel ist. Deaktivieren Sie zum Lösen dieses Problems alle Anpassungen, bei denen explizit eine Version der .NET Framework-CLR geladen wird, die nicht mit der von der Projektmappe verwendeten Laufzeit übereinstimmt.

    Eine ausgeführte Anwendung kann nur eine Instanz der .NET Framework-CLR laden. Wenn Word oder Excel bei einer Anpassung eine frühere Version der .NET Framework-CLR laden müssen, schlägt das Laden der Visual Studio Tools for Office-Projektmappen fehl.

  • Überprüfen Sie, ob eine nicht behandelte Ausnahme in der Anpassungsassembly das Laden der Assembly verhindert. Debuggen Sie die Projektmappe, wobei der Debugger so konfiguriert ist, dass er bei Ausnahmen der Common Language Runtime anhält bzw. die Option Bei Anwendungsdomänengrenzen oder verwaltete/systemeigene Übergänge überschreitenden Ausnahmen unterbrechen im Dialogfeld Optionen aktiviert ist. Weitere Informationen hierzu finden Sie unter Gewusst wie: Behandeln von Fehlern in Office-Projekten und unter Allgemein, Debuggen, Dialogfeld "Optionen".

Assembly konnte nicht initialisiert werden

Dieses Problem führt zu folgender Fehlermeldung:

Die benutzerdefinierten Makros in <project> konnten nicht ordnungsgemäß initialisiert werden. Sie können jedoch das Dokument bearbeiten und speichern. Kontaktieren Sie Ihren Administrator oder den Autor dieses Dokuments für weitere Hilfe.

Mit den benutzerdefinierten Makros ist hier die verwaltete Assembly gemeint.

Zu den möglichen Gründen für diese Fehlermeldung gehören:

  • Die Hauptassembly des Office-Projekts ist nur teilweise vertrauenswürdig. Wenn Sie beispielsweise ein Projekt in einem Netzwerkverzeichnis erstellen, das in den Sicherheitsrichtlinien auf Computerebene nur Berechtigungen für die Intranetzone besitzt, wird diese Meldung selbst dann angezeigt, wenn Sie dem Verzeichnis auf Benutzerebene volle Vertrauenswürdigkeit gewährt haben. Die Assembly wird ohne Sicherheitswarnung geladen. Aber da die Richtlinien auf Computerebene restriktiver sind, verfügt die Assembly nicht über die erforderlichen Berechtigungen für den Zugriff auf das Office-Objektmodell (das volle Vertrauenswürdigkeit erfordert). Daher wird die Assembly nicht initialisiert. Falls Sie an einer Assembly arbeiten, die nicht auf Ihrem lokalen Computer gespeichert ist, muss ein Netzwerkadministrator volle Vertrauenswürdigkeit auf Computerebene gewähren. Weitere Informationen finden Sie unter Sicherheitsanforderungen für die Ausführung von Office-Projektmappen (2003 System).

  • Die primäre Interopassembly einer COM-Komponente, auf die verwiesen wird, ist nicht im globalen Assemblycache installiert worden, bevor der entsprechende Verweis hinzugefügt wurde. Visual Studio generiert eine Interopassembly, die u. U. nicht in allen Fällen voll funktionsfähig ist, und speichert die Assembly nicht im globalen Assemblycache, sondern im Projektverzeichnis.

So verweisen Sie auf die richtige Interopassembly

  1. Suchen Sie in Ihrem Projekt nach allen Verweisen auf COM-Komponenten (wie etwa Office-Anwendungen), deren Copy Local-Eigenschaft auf True festgelegt ist.

  2. Klicken Sie mit der rechten Maustaste auf den Verweis, und klicken Sie dann im Kontextmenü auf Entfernen.

  3. Führen Sie Software aus, und installieren Sie die primäre Interopassembly für die Komponente im globalen Assemblycache. Weitere Informationen finden Sie unter Gewusst wie: Installieren von primären Interopassemblys für Office.

  4. Öffnen Sie das Projekt in Visual Studio, und fügen Sie einen neuen Verweis auf die Komponente hinzu. Weitere Informationen hierzu finden Sie unter Verweisen auf Office-Anwendungen durch primäre Interopassemblys.

Assembly ist für Offlineverwendung nicht verfügbar

Diese Situation führt zu folgender Fehlermeldung:

Die benutzerdefinierten Makros in <path> sind offline nicht verfügbar. Möchten Sie online gehen, um die Anpassung herunterzuladen? Dies kann andere Programme auf Ihrem Computer beeinflussen, wie zum Beispiel Internet Explorer.

Mit den benutzerdefinierten Makros ist hier die verwaltete Assembly gemeint. Diese Meldung wird angezeigt, wenn sich der Computer im Offlinemodus befindet und keine Kopie der Assembly im Cache gespeichert ist. Um offline zu arbeiten, müssen die folgenden Bedingungen erfüllt sein:

  • Die Assembly muss sich auf einem Webserver befinden.

  • Der Zugriff auf die Assembly muss über einen HTTP- oder HTTPS-Pfad in den benutzerdefinierten Eigenschaften erfolgen.

Um eine Assembly, die den genannten Kriterien entspricht, im Cache zu speichern, müssen Sie online gehen und das Office-Dokument öffnen. Damit wird eine Kopie der Assembly heruntergeladen. Die Assembly steht dann für die Offlineverwendung zur Verfügung. Weitere Informationen finden Sie unter Offlinemodell für Office-Projektmappen (2003 System) und unter Gewusst wie: Bereitstellen für die Offlineverwendung von Dokumenten (2003 System).

Da es nur einen Offline- und Onlinemodus für den Computer gibt, können weitere Programme betroffen sein. Wenn Sie in Internet Explorer im Menü Datei die Option Offline arbeiten auswählen, wechseln alle Anwendungen in den Offlinemodus.

Assembly ist online nicht verfügbar

Diese Situation führt zu folgender Fehlermeldung:

Die benutzerdefinierten Makros in <path> sind online nicht verfügbar, jedoch ist eine lokale Kopie vorhanden. Möchten Sie offline gehen, um die zwischengespeicherte Kopie zu verwenden? Dies kann andere Programme auf Ihrem Computer beeinflussen, wie zum Beispiel Internet Explorer.

Mit den benutzerdefinierten Makros ist hier die verwaltete Assembly gemeint. Diese Meldung wird angezeigt, wenn der Computer nicht an ein Netzwerk angeschlossen ist oder sich im Onlinemodus befindet, während das Netzwerk nicht verfügbar ist. Wenn Sie auf OK klicken, wechselt der Computer in den Offlinemodus und verwendet die im Cache gespeicherte Kopie der Assembly. Sie müssen den Computer in den Offlinemodus versetzen, um eine im Cache gespeicherte Assembly verwenden zu können. Klicken Sie dazu entweder in diesem Dialogfeld auf OK, oder wählen Sie in Internet Explorer im Menü Datei die Option Offline arbeiten. Weitere Informationen finden Sie unter Offlinemodell für Office-Projektmappen (2003 System) und unter Gewusst wie: Bereitstellen für die Offlineverwendung von Dokumenten (2003 System).

Da es nur einen Offline- und Onlinemodus für den Computer gibt, können weitere Programme betroffen sein. Wenn Sie den Computer in den Offlinemodus versetzen, wechseln alle Anwendungen in den Offlinemodus.

Assembly konnte nicht geladen werden

Dieses Problem führt zu folgender Fehlermeldung:

Der Typ <projectname> der Assembly <assemblyname> konnte nicht geladen werden.

Diese Meldung wird möglicherweise angezeigt, wenn Sie den Projektmappencode verbergen. Das Verbergen des Codes ändert die Namen sämtlicher Klassen. Allerdings wird im Manifest auf die ursprünglichen Klassennamen verwiesen, und beim Verbergen wird das Manifest nicht geändert.

Zur Vermeidung dieses Fehlers fügen Sie der Liste der Klassen, die beim Verbergen nicht umbenannt werden sollen, die Namen der Arbeitsblatt- und Arbeitsmappenklassen hinzu.

Landes-/Regionaleinstellungen verursachen bei manchen Excel-Methoden die Rückgabe eines Fehlers

Falls das vom Benutzer über Landes-/Regionaleinstellungen ausgewählte Gebietsschema nicht mit der installierten Sprachversion von Microsoft Excel 2003 übereinstimmt, werden beim Aufrufen bestimmter Excel-Methoden und Eigenschaften eventuell folgende Fehlermeldungen zurückgegeben:

Eine Ausnahme (erste Chance) des Typs "System.Runtime.InteropServices.COMException" ist in mscorlib.dll aufgetreten.

Zusätzliche Informationen: Ausnahme von HRESULT: 0x800A03EC.

- oder -

Eine Ausnahme (erste Chance) des Typs "System.Runtime.InteropServices.COMException" ist in ExcelProject.dll aufgetreten.

Zusätzliche Informationen: Altes Format oder ungültige Typbibliothek.

Einzelheiten zum Beheben dieses Problems finden Sie unter Globalisierung und Lokalisierung von Office-Projektmappen.

Office-Dokument wird ohne Fehler geöffnet, doch Code wird nicht ausgeführt

Gründe, warum der Code nicht ausgeführt wird, obwohl keine Fehlermeldungen angezeigt werden:

  • Die primären Interopassemblys für Office sind nicht im globalen Assemblycache installiert (möglicherweise, weil .NET Framework nicht auf dem Computer installiert ist), oder die Assemblys sind in Office-Setup als Nicht verfügbar gekennzeichnet.

  • Die verwendete Version von Word bzw. Excel unterstützt keine Visual Studio Tools for Office-Projektmappen. Endbenutzer müssen Word und/oder Excel aus einer Edition von Microsoft Office 2003 installieren, die Visual Studio Tools for Office unterstützt. Weitere Informationen hierzu finden Sie unter Gewusst wie: Installieren von Visual Studio Tools for Office zur Entwicklung für Microsoft Office 2003.

  • Das Dokument wird an einem HTTP- bzw. HTTPS-Speicherort geöffnet, und die Option Im selben Fenster durchsuchen für Dateien mit der Erweiterung .doc oder .xls ist in Windows Explorer nicht aktiviert. Mit dieser Option wird in Internet Explorer bestimmt, ob das Dokument innerhalb des aktuellen Fensters oder in einem separaten Fenster gehostet wird. Wenn das Dokument in einem separaten Fenster gehostet wird, werden die Anpassungen nicht geladen und nicht ausgeführt. Öffnen Sie für den Zugriff auf die Option Im selben Fenster durchsuchen für ein Word- oder Excel-Dokument Windows Explorer, klicken Sie auf Extras, und klicken Sie anschließend auf Ordneroptionen. Wählen Sie auf der Registerkarte Dateitypen in der Liste der Dateitypen DOC oder XLS aus, klicken Sie auf Erweitert, und vergewissern Sie sich, dass Im selben Fenster durchsuchen aktiviert ist.

  • Ein Word-Dokumentprojekt ist auf demselben Computer in Visual Studio geöffnet. Schließen Sie Visual Studio, und öffnen Sie das Dokument erneut.

Weitere Informationen finden Sie unter Debuggen in Projekten auf Dokumentebene.

Code wird trotz auf "Hoch" festgelegter Makrosicherheit ausgeführt

Eine Microsoft Office 2003-Projektmappe mit verwalteten Codeerweiterungen wird auch dann ausgeführt, wenn in der Office-Anwendung des Endbenutzers die Einstellung für Sicherheit auf Hoch festgelegt ist. Dies liegt daran, dass die verwaltete Assemblycodesicherheit durch Microsoft .NET Framework und nicht durch Microsoft Office Word 2003 oder Microsoft Office Excel 2003 verwaltet wird. Es gibt jedoch verschiedene Möglichkeiten, ein Dokument oder eine Arbeitsmappe mit verwalteten Codeerweiterungen zu öffnen, ohne den Assemblycode auszuführen. Weitere Informationen finden Sie unter Gewusst wie: Öffnen von Office-Projektmappen ohne die Ausführung von Code.

Excel und Word werden unerwartet beendet, nachdem eine unbehandelte Ausnahme auf einem Formular ohne Modus aufgetreten ist

Falls Excel oder Word unerwartet beendet wird, nachdem ein Benutzer auf einem Formular ohne Modus ein Ereignis ausgelöst hat, prüfen Sie, ob es an irgendeiner Stelle im Code unbehandelte Ausnahmen gibt, die ausgelöst werden können. Fügen Sie eine Fehlerbehandlung hinzu, um möglichen Datenverlust zu verhindern.

Outlook-Add-In wird nicht geladen oder ist deaktiviert

Es gibt verschiedene Verfahren, um zu bestimmen, ob ein Outlook-Add-In nicht richtig geladen wurde:

  • Falls Microsoft Office Outlook unerwartet beendet wird oder während der Initialisierung eines Add-Ins ein Fehler auftritt, wird das Add-In von Outlook möglicherweise deaktiviert. Weitere Informationen finden Sie unter Gewusst wie: Erneutes Aktivieren von Add-Ins, die deaktiviert wurden.

  • Das Laden eines Outlook-Add-Ins kann scheitern, wenn die Manifestdatei für das Add-In nicht im selben Verzeichnis liegt wie die Add-In-Assembly. Wenn Sie die Manifestdatei in einem anderen Verzeichnis bereitstellen, müssen Sie das codebase-Attribut des asmv2:installFrom-Elements in der Manifestdatei für das Add-In so aktualisieren, dass es auf den Speicherort der Add-In-Assembly zeigt.

  • Outlook führt möglicherweise ein Add-In aus, das explizit eine Version der .NET Framework-CLR (Common Language Runtime) geladen hat, die nicht mit der Visual Studio Tools for Office-Laufzeit kompatibel ist. Deaktivieren Sie zum Lösen dieses Problems alle Add-Ins, die explizit eine nicht kompatible Version von .NET Framework-CLR laden.

    Eine ausgeführte Anwendung kann nur eine Instanz von .NET Framework laden. Wenn Outlook aufgrund eines Add-Ins eine frühere Version von .NET Framework laden muss, schlägt das Laden von Add-Ins, die mit Visual Studio Tools for Office erstellt wurden, fehl.

Durch Festlegen von Umgebungsvariablen können in Visual Studio Tools for Office ausführliche Fehlermeldungen angezeigt und alle Aktionen in eine Protokolldatei geschrieben werden. So können Sie zusätzliche Information zur Fehlerbehandlung abrufen. Weitere Informationen finden Sie unter Debuggen in Projekten auf Anwendungsebene.

Outlook-Add-In kann nicht über das Dialogfeld COM-Add-Ins installiert werden

Installieren Sie Outlook-Add-Ins, die mit Visual Studio Tools for Office erstellt wurden, nicht über das Dialogfeld COM-Add-Ins. Verwenden Sie das in der Outlook-Projektvorlage enthaltene Bereitstellungsprojekt. Outlook-Add-Ins verwenden eine Proxy-DLL-Datei mit dem Namen AddinLoader.dll zur Erweiterung der Funktionalität von Outlook. Die Proxydatei ermöglicht der verwalteten Assembly die Kommunikation mit Outlook durch COM. Weitere Informationen finden Sie unter Bereitstellen von Add-Ins auf Anwendungsebene (2003 System).

Benutzerdefinierte Eigenschaftenseiten können in Outlook-Add-Ins nicht hinzugefügt werden

Wenn ein Outlook-Add-In eine benutzerdefinierte Eigenschaftenseite für das Dialogfeld Optionen von Outlook oder das Dialogfeld Eigenschaften eines Outlook-Ordners erstellt, müssen Sie die benutzerdefinierte Eigenschaftenseite explizit für COM sichtbar machen. (Standardmäßig ist die Assembly für COM nicht sichtbar). Andernfalls scheitert das Add-In bei dem Versuch, die benutzerdefinierte Eigenschaftenseite zu erstellen, und Sie erhalten beim Debuggen des Add-Ins wahrscheinlich eine COMException.

Es gibt zwei Möglichkeiten, eine benutzerdefinierte Eigenschaftenseite für COM sichtbar zu machen:

  • Fügen Sie der Klasse, die die benutzerdefinierte Eigenschaftenseite im Projekt implementiert, ein ComVisibleAttribute hinzu. Weitere Informationen über das Anwenden von Attributen auf Klassen finden Sie unter Anwenden von Attributen.

  • Verwenden Sie Visual Studio, um die gesamte Add-In-Assembly für COM sichtbar zu machen.

    So machen Sie mit Visual Studio die Add-In-Assembly für COM sichtbar

    1. Klicken Sie in Visual Studio im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und klicken Sie dann auf Eigenschaften.

    2. Klicken Sie auf die Registerkarte Anwendung.

    3. Klicken Sie auf die Schaltfläche Assemblyinformationen.

    4. Aktivieren Sie das Kontrollkästchen Assembly COM-sichtbar machen.

    5. Klicken Sie auf OK.

Quit-Ereignis wird in Outlook-Add-Ins nie ausgelöst

Wenn Sie für das Quit-Ereignis der Microsoft.Office.Tools.Outlook.Application-Klasse einen Ereignishandler in einem Outlook-Add-In erstellen, wird dieser niemals ausgeführt. Wenn Sie eine Instanz von Outlook schließen, die ein Add-In ausführt, das mit Visual Studio Tools for Office erstellt wurde, wird das Add-In entladen, bevor es das Quit-Ereignis erhält. Alternativ können Sie Code, der ausgeführt werden soll, wenn Outlook geschlossen wird, in den ThisAddIn_Shutdown-Ereignishandler des Projekts legen. Weitere Informationen finden Sie unter Add-In-Projektvorlagen für 2007 Microsoft Office und unter Add-In-Projektvorlagen für 2003 Microsoft Office.

Close-Methode verursacht, dass Word und Excel unerwartet beendet werden

Wenn Sie die Close-Methode des Excel-Workbook-Objekts oder des Word-Document-Objekts von einem Formular ohne Modus aus aufrufen, wird die Anwendung womöglich unerwartet beendet. Alle offenen Dokumente oder Arbeitsmappen werden geschlossen, und Daten können verloren gehen. Falls Microsoft Office Outlook Word als E-Mail-Editor verwendet, werden möglicherweise auch alle offenen E-Mail-Nachrichten geschlossen. Dies kann auch auftreten, wenn Sie Windows Forms oder Meldungsfelder anzeigen, während Sie das AppDomain.DomainUnload-Ereignis behandeln.

Um dieses Problem zu umgehen, rufen Sie die Close-Methode nicht von einem Formular ohne Modus und nicht in einem Ereignis für ein Formular ohne Modus auf. Verwenden Sie stattdessen folgende Prozeduren:

  • Verwenden Sie modale Formulare (zum Beispiel ShowDialog anstelle von Show), wenn Sie das Dokument vom Formular aus schließen müssen.

  • Falls Sie ein Formular ohne Modus verwenden müssen, stellen Sie sicher, dass es geschlossen ist und alle Formularverweise vollständig zerstört sind, bevor Sie versuchen, das Dokument oder die Arbeitsmappe zu schließen. Im Folgenden ein Codebeispiel:

    Dim form1 As SampleForm
    
    Sub OpenForm()
        form1 = New SampleForm
        form1.Show()  ' Show the form modelessly.
    End Sub
    
    Sub ForceShutdown()
    
        ' Completely close the form if it is still running.
        ' Note that hiding the form might not work by itself.
    
        If (Not form1 Is Nothing) Then
            form1.Close()
            form1.Dispose()
            form1 = Nothing
        End If
    
        Me.Close()
    End Sub
    
    SampleForm form1;
    
    private void OpenForm()
    {
        form1 = new SampleForm();
        form1.Show();  // Show form modelessly.
    }
    
    private void ForceShutdown()
    {
        // Completely close the form if it is still running.
        // Note that hiding the form might not work by itself.
    
        if (form1 != null)
        {
            form1.Close();
            form1.Dispose();
            form1 = null;
        }
        object saveChanges = Word.WdSaveOptions.wdSaveChanges; 
        this.Close(ref saveChanges, ref missing, ref missing);
    }
    

Informationen zum Übergeben des missing-Parameters in C# finden Sie unter Optionale Parametern in Office-Projektmappen.

Festlegen des Cancel-Parameters des Dialogfelds "SaveAs" gibt ungenaue Warnung zurück oder beendet Word unerwartet

Wenn Sie das Dialogfeld SaveAs im DocumentBeforeSave-Ereignishandler von ThisDocument anzeigen und den Cancel-Parameter auf false festlegen, könnte die Anwendung unerwartet beendet werden. Wenn Sie den Cancel-Parameter auf true festlegen, wird in einer Fehlermeldung mitgeteilt, dass die automatische Speicherung deaktiviert wurde.

Windows Forms-Steuerelemente verhalten sich unvorhersehbar, wenn das Excel-Arbeitsblattfenster geteilt wird

Wenn Sie ein Arbeitsblattfenster teilen, das Windows Forms-Steuerelemente enthält, kann es sein, dass sich die Steuerelemente in den beiden Fenstern unterschiedlich verhalten. Wenn Sie beispielsweise Code ausführen, um die BackColor-Eigenschaft einer TextBox auf einem Arbeitsblatt zu ändern, kann es sein, dass die Änderung nur in einem der beiden Fenster angezeigt wird.

InvalidCastException wird ausgelöst, wenn ein Excel-Hoststeuerelement an eine Methode übergeben wird

Einige Methoden und Eigenschaften in Excel erfordern, dass Sie ihnen ein systemeigenes Office-Objekt übergeben. Wenn das ExcelLocale1033Attribute-Attribut auf false gesetzt ist und Sie ein Hoststeuerelement übergeben, das auf dem systemeigenen Office-Objekt basiert, wird eine InvalidCastException ausgegeben. Sie können die InnerObject-Eigenschaft des Hoststeuerelements verwenden, um die zugrunde liegenden systemeigenen Office-Objekte an diese Methoden und Eigenschaften zu übergeben. Weitere Informationen zur Lokalisierung in Excel finden Sie unter Formatieren von Daten in Excel mit verschiedenen regionalen Einstellungen.

Datenbindung eines ListObject scheitert, wenn ein modales Dialogfeld angezeigt wird

Wenn Excel ein modales Dialogfeld anzeigt, während das an ein ListObject gebundene Dataset aktualisiert wird, scheitert die Datenbindung des ListObject. Wenn das ListObject die Datenbindung verliert, löst es das DataBindingFailure-Ereignis aus. Um das ListObject wieder an die Datenquelle zu binden, behandeln Sie das DataBindingFailure-Ereignis, und rufen Sie die SetDataBinding-Methode auf.

Doppelklicken auf Bereitstellungsmanifest verursacht Fehler

Wenn Sie auf ein Bereitstellungsmanifest doppelklicken, wird die folgende Meldung angezeigt:

Vorgang kann nicht fortgesetzt werden. Die Anwendung ist nicht ordnungsgemäß formatiert. Wenden Sie sich an den Hersteller der Anwendung, um Unterstützung zu erhalten.

Im Gegensatz zur ClickOnce-Bereitstellung können Sie Visual Studio Tools for Office-Projektmappen nicht ausführen, indem Sie auf das Bereitstellungsmanifest doppelklicken. Um die Projektmappe auszuführen, öffnen Sie die Office-Anwendung. Öffnen Sie bei Word und Excel das Projektmappendokument in der Anwendung. Sie können auch auf die Dokumentdatei doppelklicken.

Weitere Informationen über das Bereitstellen der Visual Studio Tools for Office-Projektmappen finden Sie unter Bereitstellen von Anpassungen auf Dokumentebene (2003 System) und unter Bereitstellen von Add-Ins auf Anwendungsebene (2003 System). Weitere Informationen zu Bereitstellungsmanifesten finden Sie unter Bereitstellungsmanifeste für Office-Projektmappen (2003 System).

Siehe auch

Aufgaben

Problembehandlung in Visual Studio zur Entwurfszeit

Konzepte

Häufige Aufgaben bei der Programmierung mit Office

Weitere Ressourcen

Problembehandlung für Office-Lösungen