Risoluzione degli errori nelle soluzioni Office
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Risoluzione degli errori nelle soluzioni Office

 

Questi problemi possono verificarsi quando si eseguono le attività seguenti durante lo sviluppo di soluzioni Office in Visual Studio:

Gli errori seguenti possono verificarsi quando si creano o si aprono progetti di Office.

Si è verificato un errore durante un tentativo 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 avviarlo di nuovo.

Se si sta cercando di creare un progetto a livello di documento, è possibile che un altro documento con lo stesso nome di quello nel nuovo progetto sia già aperto in Excel o Word. Assicurarsi che tutte le altre istanze di Excel o Word siano chiuse.

Se si crea un nuovo progetto di Office basato su un documento da un progetto esistente, le proprietà dei controlli presenti nel documento non vengono copiate nel nuovo progetto. È necessario 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.

Se si crea un nuovo progetto cartella di lavoro di Excel basato su una cartella di lavoro esistente, si potrebbe verificare 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 se 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 errore, eseguire la procedura seguente prima di creare il progetto.

  1. Aprire la cartella di lavoro in Excel.

  2. In Excel aprire il Centro protezione.

  3. Nella scheda Opzioni privacy deselezionare la casella di controllo Rimuovi le informazioni personali dalle proprietà del file al momento del salvataggio.

  4. Salvare la cartella di lavoro e chiudere Excel.

Dopo la migrazione di una soluzione Office a Microsoft Office 2010, non è possibile aprire il progetto in un computer di sviluppo in cui è installato solo Microsoft Office System 2007. 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 il 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.

Se si aggiorna un progetto a livello di documento di Microsoft Office 2003 e il documento contiene controlli Windows Form, il progetto aggiornato potrebbe presentare 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.

Gli errori seguenti possono verificarsi quando si lavora con la finestra di progettazione di documenti, cartelle di lavoro o fogli di lavoro nei progetti a livello di documento.

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.

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 i controlli vengono visualizzati come rettangoli neri nel documento o nel foglio di lavoro. Per ripristinare le relative funzionalità, è necessario separare i controlli.

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. Ciò accade perché Visual Studio apre i modelli di Word in visualizzazione Normale. Per visualizzare i controlli, scegliere Visualizzazione di Microsoft Office Word dal menu Visualizza e quindi fare clic su Layout di stampa.

Quando Excel o Word è aperto nella finestra di progettazione di Visual Studio, se si fa clic sul pulsante ClipArt nella scheda Illustrazioni della barra multifunzione, il riquadro attività ClipArt non viene aperto. Per aggiungere ClipArt, è necessario aprire la copia della cartella di lavoro o del documento che si trova nella cartella di progetto principale (non la copia nella cartella \bin) all'esterno di Visual Studio, aggiungere la ClipArt e quindi salvare la cartella di lavoro o il documento.

Gli errori seguenti possono verificarsi quando si scrive codice nei progetti di Office.

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 che ha lo stesso nome di un'altra proprietà o un altro metodo dell'oggetto. Per accedere all'evento, è necessario eseguire il cast dell'oggetto alla relativa interfaccia eventi.

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 eventi usano la convenzione di denominazione nomeoggettoEventsn_Event, ad esempio Microsoft.Office.Interop.Excel.AppEvents_Event e T:Microsoft.Office.Interop.Word.ApplicationEvents2_Event. Se è possibile accedere a un evento che si prevede di trovare in un oggetto, eseguire il cast dell'oggetto alla relativa interfaccia eventi.

Ad esempio, gli oggetti Microsoft.Office.Interop.Excel.Application dispongono di un evento NewWorkbook e una proprietà NewWorkbook. Per gestire l'evento NewWorkbook, eseguire il cast di Microsoft.Office.Interop.Excel.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 negli assembly di interoperabilità primari di Office, vedere da92dc3c-8209-44de-8095-a843659368d5.

Nei progetti destinati a .NET Framework 4 o .NET Framework 4.5 il codice che fa riferimento a una classe definita in un assembly di interoperabilità primario di Office non verrà compilato per impostazione predefinita. Le classi negli assembly di interoperabilità primari usano la convenzione di denominazione nomeoggettoClass, ad esempio T:Microsoft.Office.Interop.Word.DocumentClass e WorkbookClass. Ad esempio, il codice seguente di 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 se il relativo assembly è collegato in 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 T:Microsoft.Office.Interop.Word.DocumentClass, fare riferimento a un'istanza dell'interfaccia Document.

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

I progetti destinati a .NET Framework 4 o .NET Framework 4.5 incorporano automaticamente per impostazione predefinita tutti i tipi di interoperabilità dagli assembly di interoperabilità primari di Office. 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 sulle classi negli assembly di interoperabilità primari di Office, vedere Panoramica di classi e interfacce negli assembly di interoperabilità primari di Office. Per altre informazioni sulla funzionalità dei tipi di interoperabilità incorporati nei progetti di Office, vedere Progettazione e creazione di soluzioni Office.

Alcuni nomi di classi, ad esempio Application, si trovano in più spazi dei nomi, come Microsoft.Office.Interop.Word e System.Windows.Forms. Per questo motivo, l'istruzione Imports/using nella parte superiore dei modelli di progetto include una costante qualificativa a sintassi abbreviata, ad esempio:

using Word = Microsoft.Office.Interop.Word;

Questo utilizzo dell'istruzione Imports/using richiede la differenziazione dei riferimenti alle classi di Office con il qualificatore di Word o Excel, ad esempio:

Word.Document doc;

Se si usa una dichiarazione non qualificata, vengono generati errori, ad esempio:

Document doc;  // Class is ambiguous

Anche se lo spazio dei nomi di Word o Excel è stato importato ed è stato effettuato l'accesso a tutte le classi al suo interno, è necessario usare un nome completo per tutti i tipi con Word o Excel per rimuovere l'ambiguità relativa allo spazio dei nomi.

Gli errori seguenti possono verificarsi quando si compilano progetti di Office.

Visual Studio non può compilare progetti a livello di documento se il documento ha autorizzazioni limitate. Se il progetto contiene un documento con autorizzazioni limitate, 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.

Se si elimina un controllo NamedRange da un foglio di lavoro che non è il foglio di lavoro attivo nella finestra di progettazione, il codice generato automaticamente potrebbe non venire 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 fare in modo che venga eliminato dalla finestra di progettazione 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.

Gli errori seguenti possono verificarsi quando si esegue il debug di progetti di Office.

Quando si esegue il debug di una soluzione Office, è possibile che venga visualizzato il messaggio di errore seguente.

"Impossibile installare la personalizzazione perché ne è installata un'altra versione che 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.

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 il progetto o il relativo debug in Visual Studio. Per altre informazioni sui percorsi attendibili, vedere Concessione dell'attendibilità ai documenti.

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à Name di un thread in attesa di un evento di rete su VSTA_NetworkListener.

Se non è possibile eseguire o sviluppare un progetto di Office nel computer di sviluppo, potrebbe venire visualizzato il messaggio di errore seguente.

"Impossibile creare il dominio applicazione. Personalizzazione non caricata."

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 Creazione di copie replicate di assembly.

Se si usa il comando Modifica e continuazione per apportare modifiche al codice in un progetto a livello di documento per Excel o Word mentre il progetto è in modalità interruzione, potrebbe venire visualizzata una finestra di dialogo con il messaggio di errore seguente se successivamente si arresta il debugger.

"L'interruzione del processo nello stato corrente può causare effetti indesiderati, incluse la perdita dei dati e l'instabilità del sistema."

Indipendentemente dal fatto che si faccia clic su o su No nella finestra di dialogo, Visual Studio termina il processo di Excel o Word e il debugger viene arrestato. 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.

Mostra:
© 2016 Microsoft