Behandeln von Problemen in Office-Lösungen

              Gilt für: Visual Studio

In diesem Artikel erfahren Sie, wie Sie Probleme behandeln, die beim Ausführen verschiedener Aufgaben beim Entwickeln von Office-Lösungen in Visual Studio auftreten können。

Probleme beim Erstellen, Aktualisieren und Öffnen von Projekten

Beim Erstellen oder Öffnen von Office-Projekten können die folgenden Probleme auftreten.

Problem 1: Das Projekt kann nicht erstellt werden

Wenn ein Fehler auftritt, wenn Sie versuchen, ein Office-Projekt zu erstellen oder zu öffnen, Visual Studio aber nicht über genügend Informationen verfügt, um die Ursache zu ermitteln, versuchen Sie, Ihr Projekt zu schließen, Visual Studio zu beenden und erneut zu starten.

Wenn Sie versuchen, ein Projekt auf Dokumentebene zu erstellen, ist es möglich, dass ein anderes Dokument mit demselben Namen wie das Dokument im neuen Projekt bereits in Excel oder Word geöffnet ist. Stellen Sie sicher, dass alle anderen Instanzen von Excel oder Word geschlossen sind.

Problem 2: Steuerelementeigenschaften gehen verloren, wenn Sie ein neues Projekt basierend auf einem Dokument aus einem vorhandenen Projekt erstellen

Wenn Sie ein neues Office-Projekt basierend auf einem Dokument aus einem vorhandenen Projekt erstellen, werden die Eigenschaften für alle Steuerelemente, die sich im Dokument befinden, nicht in das neue Projekt kopiert. Setzen Sie die Eigenschaften für alle bereits vorhandenen Steuerelemente manuell zurück. Alternativ können Sie die Steuerelementeigenschaften beibehalten, indem Sie eine Kopie des vorhandenen Projekts erstellen, anstatt ein neues Projekt zu erstellen, oder indem Sie das vorhandene Projekt in die neue Projektmappe (im Designer) laden und die Steuerelemente aus dem vorhandenen Dokument in das neue Dokument kopieren und einfügen.

Problem 3: Fehler beim Erstellen eines Excel-Arbeitsmappenprojekts basierend auf einer vorhandenen Arbeitsmappe

Wenn Sie ein neues Excel-Arbeitsmappenprojekt basierend auf einer vorhandenen Arbeitsmappe erstellen, wird möglicherweise eine Kombination der folgenden Fehler angezeigt.

  • Aus Excel: "Datenschutzwarnung: Dieses Dokument enthält Makros, ActiveX-Steuerelemente, XML-Erweiterungspaketinformationen oder Webkomponenten. Diese können persönliche Informationen enthalten, die vom Dokumentinspektor nicht entfernt werden können."
  • Aus Visual Studio: "Designer konnte nicht ordnungsgemäß geladen werden."

Diese Fehler können auftreten, wenn Sie versuchen, ein Projekt zu erstellen, das auf einer Arbeitsmappe basiert, deren persönliche Informationen mithilfe der Dokumentprüfung entfernt wurden. Führen Sie vor dem Erstellen des Projekts die folgenden Schritte aus, um dieses PROBLEM zu vermeiden:

  1. Öffnen Sie die Arbeitsmappe in Excel.
  2. Öffnen Sie in Excel das Trust Center.
  3. Deaktivieren Sie auf der Registerkarte Datenschutzoptionen das Kontrollkästchen Persönliche Informationen beim Speichern aus Dateieigenschaften entfernen .
  4. Speichern Sie die Arbeitsmappe, und schließen Sie Excel.

Problem 4: Ein Projekt kann nach der Migration nicht geöffnet werden

Nachdem eine Office-Projektmappe zu Microsoft Office 2010 migriert wurde, kann das Projekt nicht auf einem Entwicklungscomputer geöffnet werden, auf dem nur 2007 Microsoft Office System installiert ist. Möglicherweise werden die folgenden Fehler angezeigt.

  • "Mindestens ein Projekt in der Projektmappe wurde nicht ordnungsgemäß geladen. Weitere Informationen finden Sie im Ausgabefenster."
  • "Das Projekt kann nicht erstellt werden, da die diesem Projekttyp zugeordnete Anwendung nicht auf diesem Computer installiert ist. Sie müssen die Microsoft Office-Anwendung installieren, die diesem Projekttyp zugeordnet ist."

Um dieses Problem zu beheben, bearbeiten Sie die VBPROJ - oder CSPROJ-Datei . Ersetzen Sie HostPackage="{763FDC83-64E5-4651-AC9B-28C4FEB985A1}" für ein Word-Projekt durch HostPackage="{6CE98B71-D55A-4305-87A8-0D6E368D9600}". Ersetzen Sie HostPackage="{B284B16A-C42C-4438-BDCD-B72F4AC43CFB}" für ein Excel-Projekt durch HostPackage="{825100CF-0BA7-47EA-A084-DCF3308DAF74}". Ersetzen Sie für ein Outlook-Projekt durch HostPackage="{D2B20FF5-A6E5-47E1-90E8-463C6860CB05}"HostPackage="{20A848B8-E01F-4801-962E-25DB0FF57389}".

Stellen Sie alternativ sicher, dass migrierte Projekte nur auf Entwicklungscomputern geöffnet werden, auf denen Microsoft Office 2010 bereits installiert ist.

Problem 5: Fehler in aktualisierten Office 2003-Projekten auf Dokumentebene, die Windows Forms Steuerelemente enthalten

Wenn Sie ein Microsoft Office 2003-Projekt auf Dokumentebene aktualisieren und das Dokument Windows Forms Steuerelemente enthält, weist das aktualisierte Projekt möglicherweise Kompilierungs- oder Laufzeitfehler auf. Um dieses Problem zu vermeiden, installieren Sie die Visual Studio 2005-Tools für Office Second Edition Runtime auf dem Entwicklungscomputer, bevor Sie das Projekt aktualisieren. Diese Version der Runtime ist als verteilbares Paket im Microsoft Download Center unter Microsoft Visual Studio 2005 Tools for Office Second Edition Runtime (VSTO 2005 SE) (x86) verfügbar.

Nachdem Sie das Upgrade des Projekts abgeschlossen haben, können Sie die Visual Studio 2005 Tools for Office Second Edition Runtime vom Entwicklungscomputer deinstallieren, wenn sie nicht von anderen Office-Projektmappen verwendet wird.

Probleme bei der Verwendung der Designer

Die folgenden Probleme können auftreten, wenn Sie mit dem Dokument-, Arbeitsmappen- oder Arbeitsblatt-Designer in Projekten auf Dokumentebene arbeiten.

Problem 1: Designer konnte nicht ordnungsgemäß geladen werden

Visual Studio kann den Designer in den folgenden Fällen nicht öffnen:

  • Excel oder Word ist bereits geöffnet und zeigt ein modales Dialogfeld an. Um den Designer zu öffnen, überprüfen Sie, ob in Excel oder Word ein modales Dialogfeld geöffnet ist, und schließen Sie alle geöffneten modale Dialogfelder. Wenn keine modale Dialogfelder geöffnet sind, ist möglicherweise eine andere Aktion erforderlich, bevor Excel oder Word antwortet.
  • Das Projekt wird derzeit gedebuggt. Beenden oder beenden Sie das Debuggen, um den Designer zu öffnen.
  • Ein auf dem Entwicklungscomputer installiertes Excel-VSTO-Add-In zeigt beim Starten von Excel ein Dialogfeld an. Um ein Excel-Projekt auf Dokumentebene zu erstellen, müssen Sie zuerst das VSTO-Add-In deaktivieren.

Problem 2: Steuerelemente werden im Dokument oder Arbeitsblatt als schwarze Rechtecke angezeigt

Wenn Sie Steuerelemente in einem Dokument oder Arbeitsblatt gruppieren, erkennt Visual Studio die Steuerelemente nicht mehr. Auf gruppierte Steuerelemente kann im Eigenschaftenfenster nicht zugegriffen werden, und sie werden im Dokument oder Arbeitsblatt als schwarze Rechtecke angezeigt. Sie müssen die Gruppierung der Steuerelemente aufheben, um deren Funktionalität wiederherzustellen.

Problem 3: Steuerelemente für eine Word Vorlage sind in Visual Studio nicht sichtbar

Wenn Sie eine Word Vorlage im Visual Studio-Designer öffnen, sind Steuerelemente für die Vorlage, die sich nicht mit Text in Zeile befinden, möglicherweise nicht sichtbar. Dies liegt daran, dass Visual Studio Word Vorlagen in der Normalansicht öffnet. Um die Steuerelemente anzuzeigen, wählen Sie das Menü Ansicht aus, zeigen Sie auf Microsoft Office Word Ansicht, und wählen Sie dann Drucklayout aus.

Problem 4: Der Befehl "ClipArt einfügen" bewirkt im Visual Studio-Designer nichts.

Wenn Excel oder Word im Visual Studio-Designer geöffnet ist, wird durch Klicken auf die Schaltfläche ClipArt auf der Registerkarte Illustrationen im Menüband der Aufgabenbereich ClipArt nicht geöffnet. Um ClipArt hinzuzufügen, müssen Sie die Kopie der Arbeitsmappe oder des Dokuments, die sich im Standard Projektordner befindet (nicht die Kopie im Ordner \bin), außerhalb von Visual Studio öffnen, das ClipArt-Objekt hinzufügen und dann die Arbeitsmappe oder das Dokument speichern.

Probleme beim Schreiben von Code

Beim Schreiben von Code in Office-Projekten können die folgenden Probleme auftreten.

Problem 1: Auf einige Ereignisse von Office-Objekten kann bei Verwendung von C nicht zugegriffen werden#

In einigen Fällen wird möglicherweise ein Compilerfehler wie der folgende angezeigt, wenn Sie versuchen, auf ein bestimmtes Ereignis einer instance eines primären Office-Interopassemblys (PIA)-Typs in einem Visual C#-Projekt zuzugreifen.

Mehrdeutigkeit zwischen "Microsoft.Office.Interop.Excel._Application.NewWorkbook" und "Microsoft.Office.Interop.Excel.AppEvents_Event.NewWorkbook"

Dieser Fehler bedeutet, dass Sie versuchen, auf ein Ereignis zuzugreifen, das denselben Namen wie eine andere Eigenschaft oder Methode des Objekts hat. Um auf das Ereignis zuzugreifen, müssen Sie das Objekt in seine Ereignisschnittstelle umwandeln.

Office PIA-Typen mit Ereignissen implementieren zwei Schnittstellen: eine Kernschnittstelle mit allen Eigenschaften und Methoden und eine Ereignisschnittstelle, die die Ereignisse enthält, die vom -Objekt verfügbar gemacht werden. Diese Ereignisschnittstellen verwenden die Benennungskonvention _<objectname>Ereignisse<n>Ereignis, z AppEvents_Event . B. und ApplicationEvents2_Event. Wenn Sie nicht auf ein Ereignis zugreifen können, das Sie für ein Objekt erwarten, wandeln Sie das Objekt in seine Ereignisschnittstelle um.

Objekte verfügen beispielsweise Application über ein NewWorkbook -Ereignis und eine NewWorkbook -Eigenschaft. Um das NewWorkbook Ereignis zu behandeln, wandeln Sie in Application die AppEvents_Event -Schnittstelle um. Im folgenden Codebeispiel wird veranschaulicht, wie dies in einem Projekt auf Dokumentebene für Excel funktioniert.

private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
    ((Excel.AppEvents_Event)this.Application).NewWorkbook += 
        new Excel.AppEvents_NewWorkbookEventHandler(ThisWorkbook_NewWorkbook);
}

void ThisWorkbook_NewWorkbook(Excel.Workbook Wb)
{
    // Perform some work here.
}

Weitere Informationen zu Ereignisschnittstellen in den Office-PIAs finden Sie unter Übersicht über Klassen und Schnittstellen in den primären Office-Interopassemblys.

Problem 2: In Projekten, die auf die .NET Framework 4 oder die .NET Framework 4.5 abzielen, kann nicht auf Office-PIA-Klassen verwiesen werden.

In Projekten, die auf die .NET Framework 4 oder die .NET Framework 4.5 abzielen, wird Code, der auf eine Klasse verweist, die in einer Office-PIA definiert ist, standardmäßig nicht kompiliert. Klassen in den PIAs verwenden die Namenskonvention <objectname>Class, z DocumentClass . B. und WorkbookClass. Der folgende Code aus einem Word VSTO-Add-In-Projekt wird beispielsweise nicht kompiliert.

Word.DocumentClass document = (Word.DocumentClass) Globals.ThisAddIn.Application.ActiveDocument;

Dieser Code führt zu den folgenden Kompilierungsfehlern:

  • Visual Basic: "Der Verweis auf die Klasse 'DocumentClass' ist nicht zulässig, wenn deren Assembly mit dem Modus "Keine PIA" verknüpft ist."
  • Visual C#: "Interop-Typ 'Microsoft.Office.Interop. Word. DocumentClass' kann nicht eingebettet werden. Verwenden Sie stattdessen die entsprechende Schnittstelle."

Um diesen Fehler zu beheben, ändern Sie den Code so, dass er stattdessen auf die entsprechende Schnittstelle verweist. Anstatt beispielsweise auf ein DocumentClass Objekt zu verweisen, verweisen Sie stattdessen auf eine instance der Document -Schnittstelle.

Word.Document document = Globals.ThisAddIn.Application.ActiveDocument;

Projekte, die auf die .NET Framework 4 oder die .NET Framework 4.5 abzielen, betten standardmäßig automatisch alle Interoperabilitätstypen aus den Office-PIAs ein. Dieser Kompilierungsfehler tritt auf, weil das Feature für eingebettete Interoptypen nur mit Schnittstellen und nicht mit Klassen funktioniert. Weitere Informationen zu Schnittstellen und Klassen in den Office-PIAs finden Sie unter Übersicht über Klassen und Schnittstellen in den primären Office-Interopassemblys. Weitere Informationen zum Feature "Eingebettete Interoptypen" in Office-Projekten finden Sie unter Entwerfen und Erstellen von Office-Projektmappen.

Problem 3: Verweise auf Office-Klassen werden nicht erkannt

Einige Klassennamen, z. B. Application, befinden sich in mehreren Namespaces wie Microsoft.Office.Interop.Word und System.Windows.Forms. Aus diesem Grund enthält die Imports/using-Anweisung oben in den Projektvorlagen eine kurz qualifizierte Konstante, z. B.:

using Word = Microsoft.Office.Interop.Word;

Diese Verwendung der Imports/using-Anweisung erfordert, dass Sie Verweise auf Office-Klassen mit dem Word- oder Excel-Qualifizierer unterscheiden, z. B.:

Word.Document doc;

Sie erhalten Fehler, wenn Sie eine nicht qualifizierte Deklaration verwenden, z. B.:

Document doc;  // Class is ambiguous

Obwohl Sie den Word- oder Excel-Namespace importiert haben und Zugriff auf alle darin enthaltenen Klassen haben, müssen Sie alle Typen mit Word oder Excel vollständig qualifizieren, um die Mehrdeutigkeit von Namespaces zu entfernen.

Probleme beim Erstellen von Projekten

Beim Erstellen von Office-Projekten können die folgenden Probleme auftreten.

Problem 1: Es kann kein Projekt auf Dokumentebene erstellt werden, das auf einem Dokument mit eingeschränkten Berechtigungen basiert.

Visual Studio kann keine Projekte auf Dokumentebene erstellen, wenn das Dokument über eingeschränkte Berechtigungen verfügt. Wenn Ihr Projekt ein Dokument mit eingeschränkten Berechtigungen enthält, wird das Projekt nicht kompiliert, und Sie erhalten die folgende Meldung im Fenster Fehlerliste .

Fehler beim Hinzufügen der Anpassung.

Wenn Sie ein Dokument einschließen möchten, das über eingeschränkte Berechtigungen verfügt, verwenden Sie ein uneingeschränktes Dokument, während Sie die Lösung entwickeln und erstellen. Wenden Sie dann die eingeschränkten Berechtigungen auf das Dokument am Veröffentlichungsort an, nachdem Sie die Lösung veröffentlicht haben.

Problem 2: Compilerfehler treten auf, nachdem ein NamedRange-Steuerelement gelöscht wurde.

Wenn Sie ein NamedRange Steuerelement aus einem Arbeitsblatt löschen, das nicht das aktive Arbeitsblatt im Designer ist, wird der automatisch generierte Code möglicherweise nicht aus Dem Projekt entfernt, und Compilerfehler können auftreten. Um sicherzustellen, dass der Code entfernt wird, sollten Sie immer das Arbeitsblatt auswählen, das das NamedRange Steuerelement enthält, um es zum aktiven Arbeitsblatt zu machen, bevor Sie das Steuerelement löschen. Wenn automatisch generierter Code beim Löschen des Steuerelements nicht gelöscht wird, können Sie den Designer veranlassen, den Code zu löschen, indem Sie das Arbeitsblatt aktivieren und eine Änderung vornehmen, damit das Arbeitsblatt als geändert markiert wird. Wenn Sie das Projekt neu erstellen, wird der Code entfernt.

Probleme beim Debuggen von Projekten

Beim Debuggen von Office-Projekten können die folgenden Probleme auftreten.

Problem 1: Aufforderung zur Deinstallation wird angezeigt, wenn Sie eine Lösung auf dem Entwicklungscomputer veröffentlichen und installieren

Wenn Sie eine Office-Projektmappe debuggen, wird möglicherweise der folgende Fehler angezeigt.

Die Anpassung kann nicht installiert werden, da derzeit eine andere Version installiert ist und von diesem Speicherort aus nicht aktualisiert werden kann.

Dieser Fehler gibt an, dass Sie die Office-Lösung zuvor auf Ihrem Entwicklungscomputer veröffentlicht und installiert haben. Um zu verhindern, dass die Meldung angezeigt wird, deinstallieren Sie die Projektmappe aus der Liste der installierten Programme auf dem Computer, bevor Sie die Projektmappe debuggen. Alternativ können Sie ein weiteres Benutzerkonto auf Ihrem Entwicklungscomputer erstellen, um die Installation der veröffentlichten Lösung zu testen.

Problem 2: Projekte auf Dokumentebene, die an UNC-Netzwerkspeicherorten erstellt wurden, werden nicht in Visual Studio ausgeführt.

Wenn Sie ein Projekt auf Dokumentebene für Excel oder Word an einem UNC-Netzwerkspeicherort erstellen, müssen Sie den Speicherort des Dokuments der Liste der vertrauenswürdigen Speicherorte in Excel oder Word hinzufügen. Andernfalls wird die Anpassung nicht geladen, wenn Sie versuchen, das Projekt in Visual Studio auszuführen oder zu debuggen. Weitere Informationen zu vertrauenswürdigen Speicherorten finden Sie unter Gewähren von Vertrauensstellungen für Dokumente.

Problem 3: Threads werden nach dem Debuggen nicht ordnungsgemäß beendet

Office-Projekte in Visual Studio folgen einer Threadbenennungskonvention, die es dem Debugger ermöglicht, das Programm ordnungsgemäß zu schließen. Wenn Sie Threads in Ihrer Projektmappe erstellen, sollten Sie jeden Thread mit dem Präfix VSTA_ benennen, um sicherzustellen, dass diese Threads ordnungsgemäß behandelt werden, wenn Sie das Debuggen beenden. Beispielsweise können Sie die -Eigenschaft eines Threads, der Name auf ein Netzwerkereignis wartet, auf VSTA_NetworkListener festlegen.

Problem 4: Ausführen oder Debuggen einer Office-Projektmappe auf dem Entwicklungscomputer nicht möglich

Wenn Sie ein Office-Projekt auf Ihrem Entwicklungscomputer nicht ausführen oder entwickeln können, wird möglicherweise die folgende Fehlermeldung angezeigt.

Die Anpassung konnte nicht geladen werden, da die Anwendungsdomäne nicht erstellt werden konnte.

Visual Studio verwendet Fusion, das .NET Framework Assemblyladeprogramm, um die Assemblys vor dem Laden von Office-Projektmappen zwischenzuspeichern. Stellen Sie sicher, dass Visual Studio in den Fusion-Cache schreiben kann, und versuchen Sie es erneut. Weitere Informationen finden Sie unter Schattenkopieassemblys.

Problem 5: Fehler beim Beenden des Debuggers in einem Projekt auf Dokumentebene nach dem Verwenden von Bearbeiten und Fortfahren

Wenn Sie Bearbeiten und Fortfahren verwenden, um Änderungen an Code in einem Projekt auf Dokumentebene für Excel oder Word vorzunehmen, während sich das Projekt im Unterbrechungsmodus befindet, wird möglicherweise ein Dialogfeld mit der folgenden Fehlermeldung angezeigt, wenn Sie dann den Debugger beenden.

Das Beenden des Prozesses in seinem aktuellen Zustand kann zu unerwünschten Ergebnissen führen, einschließlich des Datenverlusts und der Systeminstabilität.

Unabhängig davon, ob Sie im Dialogfeld Ja oder Nein auswählen, beendet Visual Studio den Excel- oder Word-Prozess und beendet den Debugger. Um das Debuggen des Projekts zu beenden, ohne dieses Dialogfeld anzuzeigen, beenden Sie Excel oder Word direkt, anstatt den Debugger in Visual Studio zu beenden.

References