Delen via


Problemen in Office-oplossingen oplossen

Van toepassing op: Visual Studio

In dit artikel wordt uitgelegd hoe u problemen kunt oplossen die kunnen optreden wanneer u verschillende taken uitvoert tijdens het ontwikkelen van Office-oplossingen in Visual Studio。

Problemen bij het maken, upgraden en openen van projecten

U kunt de volgende problemen ondervinden wanneer u Office-projecten maakt of opent.

Probleem 1: Het project kan niet worden gemaakt

Als er een fout optreedt wanneer u probeert een Office-project te maken of te openen, maar Visual Studio onvoldoende informatie heeft om de oorzaak te bepalen, sluit u uw project, sluit u Visual Studio en start u opnieuw.

Als u een project op documentniveau probeert te maken, is het mogelijk dat een ander document met dezelfde naam als het document in het nieuwe project al is geopend in Excel of Word. Zorg ervoor dat alle andere exemplaren van Excel of Word zijn gesloten.

Probleem 2: Besturingselementeigenschappen gaan verloren wanneer u een nieuw project maakt op basis van een document van een bestaand project

Als u een nieuw Office-project maakt op basis van een document van een bestaand project, worden de eigenschappen voor besturingselementen in het document niet gekopieerd naar het nieuwe project. Stel de eigenschappen voor bestaande besturingselementen handmatig opnieuw in. U kunt de besturingselementeigenschappen ook behouden door een kopie van het bestaande project te maken in plaats van een nieuw project te maken, of door het bestaande project te laden in de nieuwe oplossing (in de ontwerpfunctie) en de besturingselementen van het bestaande document naar het nieuwe document te kopiëren en plakken.

Probleem 3: Fouten bij het maken van een Excel-werkmapproject op basis van een bestaande werkmap

Als u een nieuw Excel-werkmapproject maakt op basis van een bestaande werkmap, ziet u mogelijk een combinatie van de volgende fouten.

  • In Excel: 'Privacywaarschuwing: dit document bevat macro's, ActiveX-besturingselementen, informatie over XML-uitbreidingspakketten of webonderdelen. Deze kunnen persoonlijke gegevens bevatten die niet kunnen worden verwijderd door documentcontrole.
  • Vanuit Visual Studio: 'Designer kan niet correct worden geladen'.

Deze fouten kunnen optreden wanneer u probeert een project te maken dat is gebaseerd op een werkmap waarop de persoonlijke gegevens zijn verwijderd met behulp van Documentcontrole. Voer de volgende stappen uit voordat u het project maakt om dit probleem te voorkomen:

  1. Open de werkmap in Excel.
  2. Open in Excel het Vertrouwenscentrum.
  3. Schakel op het tabblad Privacyopties het selectievakje Persoonlijke gegevens verwijderen uit bestandseigenschappen uit bij opslaan uit.
  4. Sla de werkmap op en sluit Excel.

Probleem 4: Kan een project niet openen na de migratie

Nadat een Office-oplossing is gemigreerd naar Microsoft Office 2010, kan het project niet worden geopend op een ontwikkelcomputer waarop alleen het Microsoft Office-systeem 2007 is geïnstalleerd. Mogelijk ziet u de volgende fouten.

  • "Een of meer projecten in de oplossing zijn niet correct geladen. Zie het uitvoervenster voor meer informatie.
  • "Kan het project niet maken omdat de toepassing die is gekoppeld aan dit projecttype niet op deze computer is geïnstalleerd. U moet de Microsoft-Office-app licentie installeren die is gekoppeld aan dit projecttype.

U kunt dit probleem oplossen door het .vbproj - of .csproj-bestand te bewerken. Voor een Word-project vervangt u door HostPackage="{763FDC83-64E5-4651-AC9B-28C4FEB985A1}" HostPackage="{6CE98B71-D55A-4305-87A8-0D6E368D9600}". Voor een Excel-project vervangt u door HostPackage="{B284B16A-C42C-4438-BDCD-B72F4AC43CFB}" HostPackage="{825100CF-0BA7-47EA-A084-DCF3308DAF74}". Voor een Outlook-project vervangt u door HostPackage="{D2B20FF5-A6E5-47E1-90E8-463C6860CB05}" HostPackage="{20A848B8-E01F-4801-962E-25DB0FF57389}".

U kunt er ook voor zorgen dat gemigreerde projecten alleen worden geopend op ontwikkelcomputers waarop Microsoft Office 2010 al is geïnstalleerd.

Probleem 5: Fouten in bijgewerkte Office 2003-projecten op documentniveau met Besturingselementen voor Windows Forms

Als u een Microsoft Office 2003-project op documentniveau bijwerkt en het document Windows Forms-besturingselementen bevat, kan het bijgewerkte project compilatie- of runtimefouten hebben. Installeer de Visual Studio 2005 Tools for Office Second Edition Runtime op de ontwikkelcomputer voordat u het project bijwerkt om dit probleem te voorkomen. Deze versie van de runtime is beschikbaar als een herdistribueerbaar pakket vanuit het Microsoft Downloadcentrum in Microsoft Visual Studio 2005 Tools for Office Second Edition Runtime (VSTO 2005 SE) (x86).

Nadat u klaar bent met het upgraden van het project, kunt u de Visual Studio 2005 Tools for Office Second Edition Runtime verwijderen van de ontwikkelcomputer als het niet wordt gebruikt door andere Office-oplossingen.

Problemen bij het gebruik van de ontwerpers

U kunt de volgende problemen ondervinden wanneer u met de document-, werkmap- of werkbladontwerper werkt in projecten op documentniveau.

Probleem 1: De ontwerpfunctie kan niet correct worden geladen

Visual Studio kan de ontwerpfunctie in de volgende gevallen niet openen:

  • Excel of Word is al geopend en er wordt een modaal dialoogvenster weergegeven. Als u de ontwerpfunctie wilt openen, controleert u of Excel of Word een modaal dialoogvenster heeft geopend en sluit u alle geopende modale dialoogvensters. Als er geen modale dialoogvensters zijn geopend, is er mogelijk een andere actie vereist voordat Excel of Word reageert.
  • Er wordt momenteel fouten in het project opgespoord. Als u de ontwerpfunctie wilt openen, stopt of voltooit u foutopsporing.
  • Een Excel VSTO-invoegtoepassing die op de ontwikkelcomputer is geïnstalleerd, geeft een dialoogvenster weer wanneer Excel wordt gestart. Als u een Excel-project op documentniveau wilt maken, moet u eerst de VSTO-invoegtoepassing uitschakelen.

Probleem 2: Besturingselementen worden weergegeven als zwarte rechthoeken in het document of werkblad

Als u besturingselementen in een document of werkblad groepeert, worden de besturingselementen niet meer herkend in Visual Studio. Gegroepeerde besturingselementen kunnen niet worden geopend in het venster Eigenschappen en worden weergegeven als zwarte rechthoeken in het document of werkblad. U moet de groepering van de besturingselementen opheffen om hun functionaliteit te herstellen.

Probleem 3: Besturingselementen in een Word-sjabloon zijn niet zichtbaar in Visual Studio

Als u een Word-sjabloon opent in de Visual Studio-ontwerpfunctie, zijn besturingselementen in de sjabloon die niet in overeenstemming zijn met tekst mogelijk niet zichtbaar. Dit komt doordat Visual Studio Word-sjablonen opent in de normale weergave. Als u de besturingselementen wilt weergeven, selecteert u het menu Beeld, wijst u Microsoft Office Word-weergave aan en selecteert u vervolgens Afdrukweergave.

Probleem 4: De opdracht Illustraties invoegen doet niets in de Visual Studio-ontwerpfunctie

Wanneer Excel of Word is geopend in de Visual Studio-ontwerpfunctie, wordt het taakvenster Illustraties niet geopend wanneer u op het tabblad Illustraties op het tabblad Illustraties klikt. Als u illustraties wilt toevoegen, moet u de kopie openen van de werkmap of het document in de hoofdprojectmap (niet de kopie die zich in de map \bin bevindt) buiten Visual Studio, de illustratie toevoegen en de werkmap of het document opslaan.

Problemen bij het schrijven van code

Mogelijk ondervindt u de volgende problemen bij het schrijven van code in Office-projecten.

Probleem 1: Sommige gebeurtenissen van Office-objecten zijn niet toegankelijk wanneer u C gebruikt#

In sommige gevallen ziet u mogelijk een compilerfout zoals het volgende wanneer u probeert toegang te krijgen tot een bepaalde gebeurtenis van een exemplaar van een Primaire Assembly van Office (ERROR) in een Visual C#-project.

Dubbelzinnigheid tussen 'Microsoft.Office.Interop.Excel._Application.NewWorkbook' en 'Microsoft.Office.Interop.Excel.AppEvents_Event.NewWorkbook'

Deze fout betekent dat u toegang probeert te krijgen tot een gebeurtenis met dezelfde naam als een andere eigenschap of methode van het object. Voor toegang tot de gebeurtenis moet u het object casten naar de gebeurtenisinterface.

Office PROPERTIES-typen met gebeurtenissen implementeren twee interfaces: een kerninterface met alle eigenschappen en methoden en een gebeurtenisinterface die de gebeurtenissen bevat die door het object worden weergegeven. Deze gebeurtenisinterfaces gebruiken de naamconventie _<objectnaam>gebeurtenissen<n>gebeurtenis, zoals AppEvents_Event en .ApplicationEvents2_Event Als u geen toegang hebt tot een gebeurtenis die u verwacht te vinden op een object, cast u het object naar de gebeurtenisinterface.

Objecten hebben bijvoorbeeld Application een NewWorkbook gebeurtenis en een NewWorkbook eigenschap. Als u de NewWorkbook gebeurtenis wilt afhandelen, cast u de Application naar de AppEvents_Event interface. In het volgende codevoorbeeld ziet u hoe u dit doet in een project op documentniveau voor Excel.

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.
}

Zie Overzicht van klassen en interfaces in de primaire Interop-assembly's van Office voor meer informatie over gebeurtenisinterfaces in de Office-PIA's.

Probleem 2: Kan niet verwijzen naar Office PIA-klassen in projecten die gericht zijn op .NET Framework 4 of .NET Framework 4.5

In projecten die gericht zijn op .NET Framework 4 of .NET Framework 4.5, wordt code die verwijst naar een klasse die is gedefinieerd in een Office PIA niet standaard gecompileerd. Klassen in de PIA's gebruiken de naamconventieobjectnaamKlasse<>, zoals DocumentClass en.WorkbookClass De volgende code van een Word VSTO-invoegtoepassingsproject wordt bijvoorbeeld niet gecompileerd.

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

Deze code resulteert in de volgende compileerfouten:

  • Visual Basic: 'Verwijzing naar klasse 'DocumentClass' is niet toegestaan wanneer de assembly is gekoppeld met de no-PIA-modus.
  • Visual C#: 'Type Interop 'Microsoft.Office.Interop.Word.DocumentClass' kan niet worden ingesloten. Gebruik in plaats daarvan de toepasselijke interface.

Als u deze fout wilt oplossen, wijzigt u in plaats daarvan de code om te verwijzen naar de bijbehorende interface. In plaats van naar een DocumentClass object te verwijzen, verwijst u in plaats daarvan naar een exemplaar van de Document interface.

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

Projecten die zijn gericht op .NET Framework 4 of .NET Framework 4.5, sluiten standaard alle interoperabiliteitstypen van de Office-PIA's in. Deze compilatiefout treedt op omdat de functie voor ingesloten interoperabiliteitstypen alleen werkt met interfaces, niet klassen. Zie Overzicht van klassen en interfaces in de primaire assembly's van Office voor meer informatie over interfaces en klassen in de Office-PBA's. Zie Office-oplossingen ontwerpen en maken voor meer informatie over de functie voor ingesloten interoperabiliteitstypen in Office-projecten.

Probleem 3: Verwijzingen naar Office-klassen worden niet herkend

Sommige klassenamen, bijvoorbeeld Toepassing, bevinden zich in meerdere naamruimten, zoals Microsoft.Office.Interop.Word en System.Windows.Forms. Daarom bevat de instructie Import/using bovenaan de projectsjablonen een verkorte kwalificatieconstante, bijvoorbeeld:

using Word = Microsoft.Office.Interop.Word;

Voor dit gebruik van de instructie Import met behulp van de instructie moet/u verwijzingen naar Office-klassen onderscheiden met de Kwalificatie voor Word of Excel, bijvoorbeeld:

Word.Document doc;

U krijgt fouten als u bijvoorbeeld een niet-gekwalificeerde declaratie gebruikt:

Document doc;  // Class is ambiguous

Hoewel u de Word- of Excel-naamruimte hebt geïmporteerd en toegang hebt tot alle klassen erin, moet u alle typen met Word of Excel volledig kwalificeren om dubbelzinnigheid van naamruimten te verwijderen.

Problemen bij het bouwen van projecten

U kunt de volgende problemen ondervinden wanneer u Office-projecten bouwt.

Probleem 1: Kan geen project op documentniveau maken dat is gebaseerd op een document met beperkte machtigingen

Visual Studio kan geen projecten op documentniveau maken als het document beperkte machtigingen heeft. Als uw project een document bevat met beperkte machtigingen, wordt het project niet gecompileerd en wordt het volgende bericht weergegeven in het venster Foutenlijst .

Kan de aanpassing niet toevoegen.

Als u een document wilt opnemen met beperkte machtigingen, gebruikt u een onbeperkt document terwijl u de oplossing ontwikkelt en bouwt. Pas vervolgens de beperkte machtigingen toe op het document op de publicatielocatie nadat u de oplossing hebt gepubliceerd.

Probleem 2: Compilerfouten treden op nadat een NamedRange-besturingselement is verwijderd

Als u een NamedRange besturingselement verwijdert uit een werkblad dat niet het actieve werkblad in de ontwerpfunctie is, wordt de automatisch gegenereerde code mogelijk niet verwijderd uit uw project en kunnen er compilerfouten optreden. Als u ervoor wilt zorgen dat de code wordt verwijderd, moet u altijd het werkblad selecteren dat het NamedRange besturingselement bevat om het actieve werkblad te maken voordat u het besturingselement verwijdert. Als automatisch gegenereerde code niet wordt verwijderd wanneer u het besturingselement verwijdert, kunt u ervoor zorgen dat de ontwerper de code verwijdert door het werkblad te activeren en een wijziging aan te brengen, zodat het werkblad wordt gemarkeerd als gewijzigd. Wanneer u het project opnieuw bouwt, wordt de code verwijderd.

Problemen bij het opsporen van fouten in projecten

U kunt de volgende problemen ondervinden bij het opsporen van fouten in Office-projecten.

Probleem 1: Vragen om te verwijderen wordt weergegeven wanneer u een oplossing publiceert en installeert op de ontwikkelcomputer

Wanneer u fouten opssport in een Office-oplossing, ziet u mogelijk de volgende fout.

De aanpassing kan niet worden geïnstalleerd omdat er momenteel een andere versie is geïnstalleerd en niet kan worden bijgewerkt vanaf deze locatie.

Deze fout geeft aan dat u de Office-oplossing eerder hebt gepubliceerd en geïnstalleerd op uw ontwikkelcomputer. Als u wilt voorkomen dat het bericht wordt weergegeven, verwijdert u de oplossing uit de lijst met geïnstalleerde programma's op de computer voordat u fouten in de oplossing opspoort. U kunt ook een ander gebruikersaccount maken op uw ontwikkelcomputer om de installatie van de gepubliceerde oplossing te testen.

Probleem 2: projecten op documentniveau die zijn gemaakt op UNC-netwerklocaties, worden niet uitgevoerd vanuit Visual Studio

Als u een project op documentniveau voor Excel of Word maakt op een UNC-netwerklocatie, moet u de locatie van het document toevoegen aan de lijst met vertrouwde locaties in Excel of Word. Anders wordt de aanpassing niet geladen wanneer u het project probeert uit te voeren of fouten op te sporen in Visual Studio. Zie Vertrouwensrelatie verlenen aan documenten voor meer informatie over vertrouwde locaties.

Probleem 3: Threads worden niet correct gestopt na foutopsporing

Office-projecten in Visual Studio volgen een threadnaamconventie waarmee het foutopsporingsprogramma het programma correct kan sluiten. Als u threads in uw oplossing maakt, moet u elke thread een naam geven met het voorvoegsel VSTA_ om ervoor te zorgen dat deze threads correct worden verwerkt wanneer u stopt met foutopsporing. U kunt bijvoorbeeld de Name eigenschap instellen van een thread die wacht tot een netwerk gebeurtenis VSTA_NetworkListener.

Probleem 4: Kan geen Office-oplossing uitvoeren of fouten opsporen op de ontwikkelcomputer

Als u een Office-project niet kunt uitvoeren of ontwikkelen op uw ontwikkelcomputer, ziet u mogelijk het volgende foutbericht.

Aanpassing kan niet worden geladen omdat het toepassingsdomein niet kan worden gemaakt.

Visual Studio maakt gebruik van Fusion, het .NET Framework-assemblylaadprogramma, om de assembly's in de cache te plaatsen voordat Office-oplossingen worden geladen. Zorg ervoor dat Visual Studio naar de Fusion-cache kan schrijven en probeer het opnieuw. Zie Shadow copy-assembly's voor meer informatie.

Probleem 5: Fout bij het stoppen van het foutopsporingsprogramma in een project op documentniveau na het gebruik van Bewerken en Doorgaan

Als u Bewerken en Doorgaan gebruikt om wijzigingen aan te brengen in code in een project op documentniveau voor Excel of Word terwijl het project zich in de onderbrekingsmodus bevindt, ziet u mogelijk een dialoogvenster met het volgende foutbericht als u het foutopsporingsprogramma stopt.

Het beëindigen van het proces in de huidige staat kan ongewenste resultaten veroorzaken, waaronder het verlies van gegevens en systeeminstabiliteit.

Of u nu Ja of Nee selecteert in het dialoogvenster, visual Studio beëindigt het Excel- of Word-proces en stopt het foutopsporingsprogramma. Als u de foutopsporing van het project wilt stoppen zonder dit dialoogvenster weer te geven, sluit u Excel of Word rechtstreeks af in plaats van het foutopsporingsprogramma in Visual Studio te stoppen.

Verwijzingen