Risolvere i problemi nelle soluzioni Office
Si applica a: Visual Studio
Questo articolo illustra come risolvere i problemi che possono verificarsi quando si eseguono attività diverse durante lo sviluppo di soluzioni Office in Visual Studio。
Problemi durante la creazione, l'aggiornamento e l'apertura di progetti
Quando si creano o si aprono progetti di Office, potrebbero verificarsi i problemi seguenti.
Problema 1: Il progetto non può essere creato
Se si verifica un errore quando si tenta di creare o aprire un progetto di Office, ma Visual Studio non dispone di informazioni sufficienti per determinare la causa, provare a chiudere il progetto, uscire da Visual Studio e ricominciare.
Se si sta tentando di creare un progetto a livello di documento, è possibile che un altro documento con lo stesso nome del documento nel nuovo progetto sia già aperto in Excel o Word. Assicurarsi che tutte le altre istanze di Excel o Word siano chiuse.
Problema 2: Le proprietà dei controlli vengono perse quando si crea un nuovo progetto basato su un documento da un progetto esistente
Se si crea un nuovo progetto di Office basato su un documento di un progetto esistente, le proprietà per tutti i controlli presenti nel documento non vengono copiate nel nuovo progetto. Reimpostare manualmente le proprietà per tutti i controlli preesistenti. In alternativa, è possibile mantenere le proprietà del controllo creando una copia del progetto esistente anziché creare un nuovo progetto oppure caricando il progetto esistente nella nuova soluzione (nella finestra di progettazione) e copiando e incollando i controlli dal documento esistente al nuovo documento.
Problema 3: Errori durante la creazione di un progetto di cartella di lavoro di Excel basato su una cartella di lavoro esistente
Se si crea un nuovo progetto di cartella di lavoro di Excel basato su una cartella di lavoro esistente, è possibile che venga visualizzata una combinazione degli errori seguenti.
- Da Excel: "Avviso sulla privacy: questo documento contiene macro, controlli ActiveX, informazioni sul pacchetto di espansione XML o componenti Web. Queste possono includere informazioni personali che non possono essere rimosse da Document Inspector."
- Da Visual Studio: "Designer non è stato possibile caricare correttamente".
Questi errori possono verificarsi quando si tenta di creare un progetto basato su una cartella di lavoro in cui le informazioni personali sono state rimosse tramite Controllo documento. Per evitare questo PROBLEMA, seguire questa procedura prima di creare il progetto:
- Aprire la cartella di lavoro in Excel.
- In Excel aprire il Centro protezione.
- Nella scheda Opzioni privacy deselezionare la casella di controllo Rimuovi informazioni personali dalle proprietà del file al salvataggio .
- Salvare la cartella di lavoro e chiudere Excel.
Problema 4: Non è possibile aprire un progetto dopo la migrazione
Dopo la migrazione di una soluzione Office a Microsoft Office 2010, il progetto non può essere aperto in un computer di sviluppo in cui è installato solo Microsoft Office System 2007. È possibile che vengano visualizzati gli errori seguenti.
- "Uno o più progetti nella soluzione non sono stati caricati correttamente. Per informazioni dettagliate, vedere la finestra di output."
- "Impossibile creare il progetto perché l'applicazione associata a questo tipo di progetto non è installata nel computer. È necessario installare l'applicazione di Microsoft Office associata a questo tipo di progetto."
Per risolvere questo problema, modificare il file con estensione vbproj o csproj . Per un progetto Word, sostituire HostPackage="{763FDC83-64E5-4651-AC9B-28C4FEB985A1}"
con HostPackage="{6CE98B71-D55A-4305-87A8-0D6E368D9600}"
. Per un progetto Excel, sostituire HostPackage="{B284B16A-C42C-4438-BDCD-B72F4AC43CFB}"
con HostPackage="{825100CF-0BA7-47EA-A084-DCF3308DAF74}"
. Per un progetto di Outlook, sostituire HostPackage="{D2B20FF5-A6E5-47E1-90E8-463C6860CB05}"
con HostPackage="{20A848B8-E01F-4801-962E-25DB0FF57389}"
.
In alternativa, assicurarsi che i progetti migrati vengano aperti solo nei computer di sviluppo con Microsoft Office 2010 già installato.
Problema 5: Errori nei progetti aggiornati a livello di documento di Office 2003 che contengono controlli Windows Forms
Se si aggiorna un progetto a livello di documento di Microsoft Office 2003 e il documento contiene controlli Windows Forms, il progetto aggiornato potrebbe avere errori di compilazione o di runtime. Per evitare questo problema, installare Visual Studio 2005 Tools for Office Second Edition Runtime nel computer di sviluppo prima di aggiornare il progetto. Questa versione del runtime è disponibile come pacchetto ridistribuibile dall'Area download Microsoft in Microsoft Visual Studio 2005 Tools for Office Second Edition Runtime (VSTO 2005 SE) (x86).
Dopo aver completato l'aggiornamento del progetto, è possibile disinstallare Visual Studio 2005 Tools for Office Second Edition Runtime dal computer di sviluppo se non viene usato da altre soluzioni Office.
Problemi relativi all'uso delle finestre di progettazione
Quando si lavora con la finestra di progettazione di documenti, cartelle di lavoro o fogli di lavoro in progetti a livello di documento, potrebbero verificarsi i problemi seguenti.
Problema 1: Designer non è stato possibile caricare correttamente
Visual Studio non può aprire la finestra di progettazione nei casi seguenti:
- Excel o Word è già aperto e visualizza una finestra di dialogo modale. Per aprire la finestra di progettazione, verificare se in Excel o Word è aperta una finestra di dialogo modale e chiudere tutte le finestre di dialogo modali aperte. Se non sono aperte finestre di dialogo modali, potrebbero essere necessarie altre azioni prima che Excel o Word rispondano.
- Il progetto è attualmente sottoposto a debug. Per aprire la finestra di progettazione, arrestare o terminare il debug.
- Un componente aggiuntivo VSTO di Excel installato nel computer di sviluppo visualizza una finestra di dialogo all'avvio di Excel. Per creare un progetto a livello di documento di Excel, è innanzitutto necessario disabilitare il componente aggiuntivo VSTO.
Problema 2: i controlli vengono visualizzati come rettangoli neri nel documento o nel foglio di lavoro
Se si raggruppano i controlli in un documento o in un foglio di lavoro, Visual Studio non riconosce più i controlli. I controlli raggruppati non sono accessibili nella finestra Proprietà e vengono visualizzati come rettangoli neri nel documento o nel foglio di lavoro. È necessario separare i controlli per ripristinare le relative funzionalità.
Problema 3: I controlli in un modello di Word non sono visibili in Visual Studio
Se si apre un modello di Word nella finestra di progettazione di Visual Studio, i controlli del modello che non sono in linea con il testo potrebbero non essere visibili. Questo avviene perché Visual Studio apre Word modelli nella visualizzazione Normale. Per visualizzare i controlli, selezionare il menu Visualizza, scegliere Microsoft Office Word Visualizza e quindi selezionare Layout di stampa.
Problema 4: Il comando Inserisci ClipArt non esegue alcuna operazione nella finestra di progettazione di Visual Studio
Quando Excel o Word è aperto nella finestra di progettazione di Visual Studio, facendo clic sul pulsante ClipArt nella scheda Illustrazioni della barra multifunzione non viene aperto il riquadro attività ClipArt. Per aggiungere ClipArt, è necessario aprire la copia della cartella di lavoro o del documento presente nella cartella principale del progetto (non la copia presente nella cartella \bin ) all'esterno di Visual Studio, aggiungere la ClipArt e quindi salvare la cartella di lavoro o il documento.
Problemi durante la scrittura del codice
Quando si scrive codice nei progetti di Office, potrebbero verificarsi i problemi seguenti.
Problema 1: Alcuni eventi di oggetti di Office non sono accessibili quando si usa C#
In alcuni casi, è possibile che venga visualizzato un errore del compilatore simile al seguente quando si tenta di accedere a un particolare evento di un'istanza di un tipo di assembly di interoperabilità primario di Office in un progetto Visual C#.
Ambiguità tra 'Microsoft.Office.Interop.Excel._Application.NewWorkbook' e 'Microsoft.Office.Interop.Excel.AppEvents_Event.NewWorkbook'
Questo errore indica che si sta tentando di accedere a un evento con lo stesso nome di un'altra proprietà o metodo dell'oggetto. Per accedere all'evento, è necessario eseguire il cast dell'oggetto alla relativa interfaccia evento.
I tipi di pia di Office con eventi implementano due interfacce: un'interfaccia di base con tutte le proprietà e i metodi e un'interfaccia evento che contiene gli eventi esposti dall'oggetto . Queste interfacce eventi usano la convenzione di denominazione _<objectname>Events<n>Event, ad AppEvents_Event esempio e ApplicationEvents2_Event. Se non è possibile accedere a un evento che si prevede di trovare in un oggetto, eseguire il cast dell'oggetto alla relativa interfaccia evento.
Ad esempio, Application gli oggetti hanno un NewWorkbook evento e una NewWorkbook proprietà. Per gestire l'evento NewWorkbook , eseguire il cast di Application all'interfaccia AppEvents_Event . Nell'esempio di codice seguente viene illustrato come eseguire questa operazione in un progetto a livello di documento per 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.
}
Per altre informazioni sulle interfacce degli eventi nelle funzionalità di interoperabilità personali di Office, vedere Panoramica delle classi e delle interfacce negli assembly di interoperabilità primari di Office.
Problema 2: Non è possibile fare riferimento alle classi pia di Office nei progetti destinati a .NET Framework 4 o .NET Framework 4.5
Nei progetti destinati a .NET Framework 4 o .NET Framework 4.5, il codice che fa riferimento a una classe definita in un ambiente di interoperabilità primario di Office non verrà compilato per impostazione predefinita. Le classi nei PIA usano la convenzione <di denominazione objectname>Class, ad DocumentClass esempio e WorkbookClass. Ad esempio, il codice seguente di un Word progetto di componente aggiuntivo VSTO non verrà compilato.
Word.DocumentClass document = (Word.DocumentClass) Globals.ThisAddIn.Application.ActiveDocument;
Questo codice genera gli errori di compilazione seguenti:
- Visual Basic: "Il riferimento alla classe 'DocumentClass' non è consentito quando il relativo assembly è collegato tramite la modalità No-PIA.
- Visual C#: "Tipo di interoperabilità 'Microsoft.Office.Interop. Word. Impossibile incorporare DocumentClass'. Usare invece l'interfaccia applicabile."
Per risolvere questo errore, modificare il codice in modo da fare riferimento all'interfaccia corrispondente. Ad esempio, anziché fare riferimento a un DocumentClass oggetto, fare riferimento a un'istanza dell'interfaccia Document .
Per impostazione predefinita, i progetti destinati a .NET Framework 4 o .NET Framework 4.5 incorporano automaticamente tutti i tipi di interoperabilità dalle FUNZIONALITÀ personali di Office. Questo errore di compilazione si verifica perché la funzionalità dei tipi di interoperabilità incorporati funziona solo con le interfacce, non con le classi. Per altre informazioni sulle interfacce e le classi nelle funzionalità di interoperabilità personali di Office, vedere Panoramica delle classi e delle interfacce negli assembly di interoperabilità primari di Office. Per altre informazioni sulla funzionalità dei tipi di interoperabilità incorporati nei progetti di Office, vedere Progettare e creare soluzioni Office.
Problema 3: I riferimenti alle classi di Office non vengono riconosciuti
Alcuni nomi di classi, ad esempio Application, si trovano in più spazi dei nomi, ad Microsoft.Office.Interop.Word esempio e System.Windows.Forms. Per questo motivo, l'istruzione Imports/using all'inizio dei modelli di progetto include una costante di qualificazione abbreviata, ad esempio:
Per questo utilizzo dell'istruzione Imports/using è necessario distinguere i riferimenti alle classi di Office con il qualificatore Word o Excel, ad esempio:
Si otterranno errori se si usa una dichiarazione non qualificata, ad esempio:
Anche se è stato importato lo spazio dei nomi Word o Excel e si ha accesso a tutte le classi al suo interno, è necessario qualificare completamente tutti i tipi con Word o Excel per rimuovere l'ambiguità dello spazio dei nomi.
Problemi durante la compilazione di progetti
Quando si compilano progetti di Office, potrebbero verificarsi i problemi seguenti.
Problema 1: Non è possibile compilare un progetto a livello di documento basato su un documento con autorizzazioni limitate
Visual Studio non può compilare progetti a livello di documento se il documento dispone di autorizzazioni limitate. Se il progetto contiene un documento con autorizzazioni limitate, il progetto non verrà compilato e verrà visualizzato il messaggio seguente nella finestra Elenco errori .
Impossibile aggiungere la personalizzazione.
Se si vuole includere un documento con autorizzazioni limitate, usare un documento senza restrizioni durante lo sviluppo e la compilazione della soluzione. Applicare quindi le autorizzazioni limitate al documento nel percorso di pubblicazione, dopo aver pubblicato la soluzione.
Problema 2: Gli errori del compilatore si verificano dopo l'eliminazione di un controllo NamedRange
Se si elimina un NamedRange controllo da un foglio di lavoro che non è il foglio di lavoro attivo nella finestra di progettazione, il codice generato automaticamente potrebbe non essere rimosso dal progetto e potrebbero verificarsi errori del compilatore. Per assicurarsi che il codice venga rimosso, è consigliabile selezionare sempre il foglio di lavoro che contiene il NamedRange controllo per renderlo attivo prima di eliminare il controllo. Se il codice generato automaticamente non viene eliminato quando si elimina il controllo, è possibile fare in modo che la finestra di progettazione elimini il codice attivando il foglio di lavoro e apportando una modifica in modo che il foglio di lavoro venga contrassegnato come modificato. Quando si ricompila il progetto, il codice viene rimosso.
Problemi durante il debug di progetti
Quando si esegue il debug di progetti di Office, potrebbero verificarsi i problemi seguenti.
Problema 1: La richiesta di disinstallazione viene visualizzata quando si pubblica e si installa una soluzione nel computer di sviluppo
Quando si esegue il debug di una soluzione Office, potrebbe essere visualizzato l'errore seguente.
La personalizzazione non può essere installata perché è attualmente installata un'altra versione e non può essere aggiornata da questo percorso.
Questo errore indica che la soluzione Office è stata pubblicata e installata in precedenza nel computer di sviluppo. Per impedire la visualizzazione del messaggio, disinstallare la soluzione dall'elenco dei programmi installati nel computer prima di eseguire il debug della soluzione. In alternativa, è possibile creare un altro account utente nel computer di sviluppo per testare l'installazione della soluzione pubblicata.
Problema 2: I progetti a livello di documento creati nei percorsi di rete UNC non vengono eseguiti da Visual Studio
Se si crea un progetto a livello di documento per Excel o Word in un percorso di rete UNC, è necessario aggiungere il percorso del documento all'elenco dei percorsi attendibili in Excel o Word. In caso contrario, la personalizzazione non verrà caricata quando si tenta di eseguire o eseguire il debug del progetto in Visual Studio. Per altre informazioni sui percorsi attendibili, vedere Concedere attendibilità ai documenti.
Problema 3: I thread non vengono arrestati correttamente dopo il debug
I progetti di Office in Visual Studio seguono una convenzione di denominazione dei thread che consente al debugger di chiudere correttamente il programma. Se si creano thread nella soluzione, è necessario denominare ogni thread con il prefisso VSTA_ per assicurarsi che questi thread vengano gestiti correttamente quando si interrompe il debug. Ad esempio, è possibile impostare la Name
proprietà di un thread che attende che un evento di rete VSTA_NetworkListener.
Problema 4: Non è possibile eseguire o eseguire il debug di alcuna soluzione Office nel computer di sviluppo
Se non è possibile eseguire o sviluppare un progetto di Office nel computer di sviluppo, è possibile che venga visualizzato il messaggio di errore seguente.
Impossibile caricare la personalizzazione perché non è stato possibile creare il dominio dell'applicazione.
Visual Studio usa Fusion, il caricatore di assembly .NET Framework, per memorizzare nella cache gli assembly prima di caricare le soluzioni Office. Assicurarsi che Visual Studio possa scrivere nella cache Fusion e riprovare. Per altre informazioni, vedere Assembly di copia shadow.
Problema 5: Errore durante l'arresto del debugger in un progetto a livello di documento dopo l'uso di Modifica e continuazione
Se si usa Modifica e continuazione per apportare modifiche al codice in un progetto a livello di documento per Excel o Word mentre il progetto è in modalità di interruzione, potrebbe essere visualizzata una finestra di dialogo con il messaggio di errore seguente se si arresta il debugger.
La chiusura del processo nello stato corrente può causare risultati indesiderati, tra cui la perdita di dati e l'instabilità del sistema.
Se si seleziona Sì o No nella finestra di dialogo, Visual Studio termina il processo di Excel o Word e arresta il debugger. Per interrompere il debug del progetto senza visualizzare questa finestra di dialogo, uscire direttamente da Excel o Word anziché arrestare il debugger in Visual Studio.