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 tegenkomen 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 het project af, sluit u Visual Studio af en begint 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: Eigenschappen van besturingselementen 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 ook de eigenschappen van het besturingselement behouden door een kopie van het bestaande project te maken in plaats van een nieuw project te maken, of door het bestaande project in de nieuwe oplossing (in de ontwerpfunctie) te laden en de besturingselementen van het bestaande document naar het nieuwe document te kopiëren en te 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.
- Vanuit Excel: 'Privacywaarschuwing: dit document bevat macro's, ActiveX-besturingselementen, XML-uitbreidingspakketinformatie of webonderdelen. Dit kunnen persoonlijke gegevens zijn 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. U kunt dit PROBLEEM voorkomen door de volgende stappen uit te voeren voordat u het project maakt:
- Open de werkmap in Excel.
- Open het Vertrouwenscentrum in Excel.
- Schakel op het tabblad Privacyopties het selectievakje Persoonlijke gegevens verwijderen uit bestandseigenschappen bij opslaan uit.
- 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 2007 Microsoft Office-systeem 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-toepassing installeren die is gekoppeld aan dit projecttype.
U kunt dit probleem oplossen door het .vbproj- of .csproj-bestand te bewerken. Vervang voor een Word-project door HostPackage="{763FDC83-64E5-4651-AC9B-28C4FEB985A1}"
HostPackage="{6CE98B71-D55A-4305-87A8-0D6E368D9600}"
. Vervang voor een Excel-project door HostPackage="{B284B16A-C42C-4438-BDCD-B72F4AC43CFB}"
HostPackage="{825100CF-0BA7-47EA-A084-DCF3308DAF74}"
. Vervang voor een Outlook-project 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 die Windows Forms besturingselementen bevatten
Als u een upgrade uitvoert van een Microsoft Office 2003-project op documentniveau en het document Windows Forms besturingselementen bevat, kan het bijgewerkte project compileer- of runtimefouten bevatten. U kunt dit probleem voorkomen door Visual Studio 2005 Tools for Office Second Edition Runtime te installeren op de ontwikkelcomputer voordat u het project bijwerkt. Deze versie van de runtime is beschikbaar als een herdistribueerbaar pakket in het Microsoft Downloadcentrum op 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 Visual Studio 2005 Tools for Office Second Edition Runtime verwijderen van de ontwikkelcomputer als deze niet wordt gebruikt door andere Office-oplossingen.
Problemen wanneer u de ontwerpers gebruikt
U kunt de volgende problemen tegenkomen wanneer u met de ontwerpfunctie voor documenten, werkmappen of werkbladen werkt in projecten op documentniveau.
Probleem 1: Designer kan niet correct worden geladen
Visual Studio kan de ontwerpfunctie niet openen in de volgende gevallen:
- Excel of Word is al geopend en er wordt een modaal dialoogvenster weergegeven. Als u de ontwerpfunctie wilt openen, controleert u of in Excel of Word een modaal dialoogvenster is 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.
- Het project wordt momenteel foutopsporing uitgevoerd. Als u de ontwerpfunctie wilt openen, stopt of voltooit u de foutopsporing.
- Een Excel VSTO-invoegtoepassing die is geïnstalleerd op de ontwikkelcomputer, 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 groepeert op een document of werkblad, herkent Visual Studio de besturingselementen niet meer. Gegroepeerde besturingselementen zijn niet toegankelijk in het venster Eigenschappen en worden weergegeven als zwarte rechthoeken in het document of werkblad. U moet de groepering van de besturingselementen opheffen om de functionaliteit ervan te herstellen.
Probleem 3: Besturingselementen op een Word-sjabloon zijn niet zichtbaar in Visual Studio
Als u een Word sjabloon opent in Visual Studio Designer, zijn besturingselementen op de sjabloon die niet in tekst staan mogelijk niet zichtbaar. Dit komt doordat Visual Studio Word sjablonen in de normale weergave opent. Als u de besturingselementen wilt weergeven, selecteert u het menu Beeld, wijst u Microsoft Office Word Weergave aan en selecteert u afdrukweergave.
Probleem 4: de opdracht Illustraties invoegen doet niets in Visual Studio Designer
Wanneer Excel of Word is geopend in Visual Studio Designer, wordt het taakvenster Illustraties niet geopend als u op het tabblad Illustraties op het lint op de knop Illustraties klikt. Als u illustraties wilt toevoegen, moet u de kopie van de werkmap of het document openen die zich in de hoofdmap van het project bevindt (niet de kopie die zich in de map \bin bevindt) buiten Visual Studio, de illustratie toevoegen en vervolgens de werkmap of het document opslaan.
Problemen bij het schrijven van code
U kunt de volgende problemen tegenkomen wanneer u code schrijft 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 de volgende wanneer u toegang probeert te krijgen tot een bepaalde gebeurtenis van een exemplaar van een office-type primaire interop assembly (PIA) 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 naar de gebeurtenisinterface casten.
Office PIA-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 in een object, cast u het object naar de bijbehorende gebeurtenisinterface.
Objecten hebben bijvoorbeeld Application een NewWorkbook gebeurtenis en een NewWorkbook eigenschap. Als u de NewWorkbook gebeurtenis wilt afhandelen, castt 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.
}
Probleem 2: Kan niet verwijzen naar Office PIA-klassen in projecten die zijn gericht op de .NET Framework 4 of de .NET Framework 4.5
In projecten die gericht zijn op de .NET Framework 4 of de .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 naamconventieobjectnaam<> Klasse, 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#: 'Interop-type 'Microsoft.Office.Interop. Word. DocumentClass' kan niet worden ingesloten. Gebruik in plaats hiervan de toepasselijke interface.'
U kunt deze fout oplossen door de code te wijzigen zodat deze verwijst naar de bijbehorende interface. In plaats van bijvoorbeeld te verwijzen naar een DocumentClass object, verwijst u naar een exemplaar van de Document interface.
Projecten die zijn gericht op de .NET Framework 4 of de .NET Framework 4.5, sluiten standaard automatisch alle interop-typen in de Office-PBA's in. Deze compileerfout treedt op omdat de functie ingesloten interop-typen alleen werkt met interfaces, niet met klassen. Zie Overzicht van klassen en interfaces in de primaire Office-interop-assembly's voor meer informatie over interfaces en klassen in de Office-PIA's. Zie Office-oplossingen ontwerpen en maken voor meer informatie over de functie ingesloten interop-typen 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 Importeren/met behulp van bovenaan de projectsjablonen een in aanmerking komende constante, bijvoorbeeld:
Voor dit gebruik van de instructie Importeren/met moet u verwijzingen naar Office-klassen onderscheiden met de Word of Excel-kwalificatie, bijvoorbeeld:
U krijgt fouten als u een niet-gekwalificeerde declaratie gebruikt, bijvoorbeeld:
Hoewel u de Word of Excel-naamruimte hebt geïmporteerd en toegang hebt tot alle klassen erin, moet u alle typen volledig kwalificeren met Word of Excel om dubbelzinnigheid in de naamruimte te verwijderen.
Problemen bij het bouwen van projecten
U kunt de volgende problemen tegenkomen 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 ontvangt u het volgende bericht in het venster Lijst met fouten .
Kan de aanpassing niet toevoegen.
Als u een document met beperkte machtigingen wilt opnemen, 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. Om ervoor te zorgen dat de code wordt verwijderd, moet u altijd het werkblad met het NamedRange besturingselement selecteren om dit 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 tegenkomen wanneer u fouten in Office-projecten opspoort.
Probleem 1: De prompt om te verwijderen wordt weergegeven wanneer u een oplossing publiceert en installeert op de ontwikkelcomputer
Wanneer u fouten in een Office-oplossing opspoort, 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 op uw ontwikkelcomputer maken 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 maakt voor Excel of Word 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 probeert het project uit te voeren of fouten op te sporen in Visual Studio. Zie Vertrouwen 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 naamconventie voor threads 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 van een thread die wacht op een netwerk gebeurtenis instellen op VSTA_NetworkListener.
Probleem 4: Kan geen Office-oplossingen uitvoeren of fouten opsporen op de ontwikkelcomputer
Als u geen Office-project kunt uitvoeren of ontwikkelen op uw ontwikkelcomputer, ziet u mogelijk het volgende foutbericht.
De aanpassing kan niet worden geladen omdat het toepassingsdomein niet kan worden gemaakt.
Visual Studio maakt gebruik van Fusion, het .NET Framework assembly-loader, om de assembly's in de cache te opslaan voordat Office-oplossingen worden geladen. Zorg ervoor dat Visual Studio naar de Fusion-cache kan schrijven en probeer het opnieuw. Zie Schaduwkopieerassembly'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 vervolgens het foutopsporingsprogramma stopt.
Het beëindigen van het proces in de huidige status kan leiden tot ongewenste resultaten, waaronder 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 wilt stoppen met het opsporen van fouten in het project zonder dit dialoogvenster weer te geven, sluit u Excel of Word rechtstreeks af in plaats van het foutopsporingsprogramma in Visual Studio te stoppen.