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à del controllo 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 da 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à dei controlli 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 per la privacy: questo documento contiene macro, controlli ActiveX, informazioni del pacchetto di espansione XML o componenti Web. Potrebbero essere presenti informazioni personali che non possono essere rimosse tramite Controllo documento."
- Da Visual Studio: "Impossibile caricare correttamente la finestra di progettazione."
Questi errori possono verificarsi quando si cerca 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 con solo il sistema di Microsoft Office 2007 installato. Potrebbero venire visualizzati gli errori seguenti.
- "Uno o più progetti della soluzione non sono stati caricati correttamente. Per dettagli, vedere la finestra di output".
- "Impossibile creare il progetto perché l'applicazione associata al tipo di progetto non è installata nel computer. È necessario installare l'applicazione di Microsoft Office associata al tipo di progetto corrente."
Per risolvere questo problema, modificare il file con estensione vbproj o csproj . Per un progetto di Word, sostituire HostPackage="{763FDC83-64E5-4651-AC9B-28C4FEB985A1}"
con HostPackage="{6CE98B71-D55A-4305-87A8-0D6E368D9600}"
. Per un progetto di 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 in cui è già installato Microsoft Office 2010.
Problema 5: Errori nei progetti a livello di documento di Office 2003 aggiornati che contengono controlli Windows Form
Se si aggiorna un progetto a livello di documento di Microsoft Office 2003 e il documento contiene controlli Windows Form, il progetto aggiornato potrebbe avere errori di compilazione o di runtime. Per evitare questo problema, installare Visual Studio 2005 Tools per 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 per Office Second Edition Runtime (VSTO 2005 SE) (x86).
Dopo aver completato l'aggiornamento del progetto, è possibile disinstallare Visual Studio 2005 Tools per Office Second Edition Runtime dal computer di sviluppo se non viene usato da altre soluzioni Office.
Problemi quando si usano le finestre di progettazione
Quando si lavora con il documento, la cartella di lavoro o la finestra di progettazione del foglio di lavoro nei progetti a livello di documento possono verificarsi i problemi seguenti.
Problema 1: La finestra di progettazione non è stata caricata correttamente
Visual Studio non può aprire la finestra di progettazione nei casi seguenti:
- Excel o Word è già aperto ed è visualizzata una finestra di dialogo modale. Per aprire la finestra di progettazione, verificare se in Excel o in Word è aperta una finestra di dialogo modale e chiudere eventuali finestre di dialogo modali aperte. Se non ci sono finestre di dialogo modali aperte, potrebbe essere necessario eseguire altre azioni affinché Excel o Word risponda.
- Il progetto corrente è in fase di debug. Per aprire la finestra di progettazione, interrompere o terminare il debug.
- Un componente aggiuntivo VSTO di Excel installato nel computer di sviluppo provoca la visualizzazione di una finestra di dialogo all'avvio di Excel. Per creare un progetto a livello di documento di Excel, è prima 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 li riconosce più. Non è possibile accedere ai controlli raggruppati nella finestra Proprietà e vengono visualizzati come rettangoli neri nel documento o nel foglio di lavoro. Per ripristinare le relative funzionalità, è necessario separare i controlli.
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 sul modello che non sono in linea con il testo potrebbero non essere visibili. Ciò è dovuto al fatto che Visual Studio apre i modelli di Word nella visualizzazione Normale . Per visualizzare i controlli, selezionare il menu Visualizza , scegliere Visualizzazione di Microsoft Office Word 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, fare clic sul pulsante ClipArt nella scheda Illustrazioni della barra multifunzione non apre il riquadro attività ClipArt . Per aggiungere clipart, è necessario aprire la copia della cartella di lavoro o del documento che si trova nella cartella di progetto principale (non nella 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 di codice
Quando si scrive codice nei progetti di Office, potrebbero verificarsi i problemi seguenti.
Problema 1: alcuni eventi degli oggetti di Office non sono accessibili quando si usa C#
In alcuni casi, potrebbe venire visualizzato un errore del compilatore simile al seguente quando si tenta di accedere a un evento specifico 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 nella relativa interfaccia evento.
I tipi di assembly di interoperabilità primari di Office che dispongono di eventi implementano due interfacce: un'interfaccia principale con tutte le proprietà e i metodi e un'interfaccia eventi che contiene gli eventi esposti dall'oggetto. Queste interfacce di evento usano la convenzione di denominazione _<objectname>Events<n>Event, ad esempio AppEvents_Event e .ApplicationEvents2_Event Se non è possibile accedere a un evento che si prevede di trovare in un oggetto, eseguire il cast dell'oggetto nella relativa interfaccia evento.
Ad esempio, gli oggetti Application dispongono di un evento NewWorkbook e una proprietà NewWorkbook. Per gestire l'evento NewWorkbook, eseguire il cast di Application all'interfaccia AppEvents_Event. L'esempio di codice seguente illustra 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 eventi nelle interfacce 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 pia di Office non verrà compilato per impostazione predefinita. Le classi nei piA usano la classe nomeoggetto> convenzione <di denominazione, ad esempio DocumentClass e WorkbookClass. Ad esempio, il codice seguente da un progetto di componente aggiuntivo VSTO di Word 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#: "Impossibile incorporare il tipo di interoperabilità 'Microsoft.Office.Interop.Word.DocumentClass'. Utilizzare l'interfaccia applicabile."
Per risolvere l'errore, modificare il codice in modo che faccia riferimento all'interfaccia corrispondente. Ad esempio, anziché fare riferimento a un oggetto DocumentClass, fare riferimento a un'istanza dell'interfaccia Document.
I progetti destinati a .NET Framework 4 o .NET Framework 4.5 incorporano automaticamente tutti i tipi di interoperabilità dalle applicazioni personali di Office per impostazione predefinita. Questo errore di compilazione si verifica perché la funzionalità dei tipi di interoperabilità incorporati funziona solo con le interfacce e non con le classi. Per altre informazioni sulle interfacce e le classi negli assembly di interoperabilità primari di Office, vedere Panoramica delle classi e delle interfacce negli assembly di interoperabilità primari di Office. Per altre informazioni sulla funzionalità 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 classe, 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 using Imports/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 di Word o Excel, ad esempio:
Se si usa una dichiarazione non qualificata, si otterranno errori, 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 quando si sviluppa e si compila la 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 contenente il controllo NamedRange per renderlo attivo prima di eliminare il controllo. Se il codice generato automaticamente non viene eliminato quando si elimina il controllo, è possibile 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 dei progetti
Quando si esegue il debug dei progetti di Office, potrebbero verificarsi i problemi seguenti.
Problema 1: Viene visualizzata una richiesta di disinstallazione quando si pubblica e si installa una soluzione nel computer di sviluppo
Quando si esegue il debug di una soluzione Office, è possibile che venga visualizzato il messaggio di errore seguente.
Impossibile installare la personalizzazione 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 in 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 di 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 l'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 garantire che questi thread vengano gestiti correttamente quando si arresta il debug. Ad esempio, è possibile impostare la proprietà di un thread che attende l'VSTA_NetworkListener Name
di un evento di rete.
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 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 utilizza Modifica e Continua per apportare modifiche al codice in un progetto a livello di documento per Excel o Word mentre il progetto è in modalità di interruzione, è possibile che venga visualizzata una finestra di dialogo con il messaggio di errore seguente se si arresta il debugger.
L'interruzione del processo nello stato corrente può causare risultati indesiderati, inclusa 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 da Excel o Word direttamente anziché arrestare il debugger in Visual Studio.