Risoluzione dei problemi relativi alla fase di progettazione nelle soluzioni Office

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

  • Creazione, aggiornamento e apertura di progetti

  • Utilizzo delle finestre di progettazione

  • Scrittura di codice

  • Compilazione di progetti

  • Debug di progetti

Creazione, aggiornamento e apertura di progetti

Quando si creano o aprono progetti di Office possono verificarsi gli errori seguenti.

Impossibile creare il progetto

Si è verificato un errore durante il tentativo di creare o aprire un progetto di Office. Le informazioni disponibili sono insufficienti per determinarne la causa. Provare a chiudere il progetto, quindi chiudere e riavviare Visual Studio.

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.

Perdita delle proprietà dei controlli quando si crea un nuovo progetto sulla base di un documento proveniente da un progetto esistente

Se si crea un nuovo progetto di Office sulla base di un documento derivante da un progetto esistente, le proprietà dei controlli che sono presenti nel documento non verranno copiate nel nuovo progetto. È quindi necessario reimpostare manualmente le proprietà per tutti i controlli preesistenti. In alternativa, è possibile conservare le proprietà dei controlli creando una copia del progetto esistente anziché crearne uno completamente nuovo oppure caricando il progetto esistente nella nuova soluzione (nella finestra di progettazione), quindi copiando e incollando nel nuovo documento i controlli del documento preesistente.

Visual Studio smette di rispondere quando si crea un nuovo progetto Modello di Word 2007 basato sul modello di un progetto esistente

Visual Studio può smettere di rispondere quando si crea un progetto Modello di Word 2007 nello scenario seguente:

  • Il progetto si basa su un modello id Word di un altro progetto di Visual Studio.

  • Il modello presenta l'estensione dot e contiene controlli Windows Form aggiunti dall'altro progetto.

Per evitare questo problema, prima di creare il nuovo progetto, aggiungere la cartella in cui il progetto verrà creato all'elenco di percorsi attendibili di Word. Per ulteriori informazioni sull'aggiunta di una cartella ai percorsi attendibili, vedere il sito Web Microsoft Office Online Creazione, rimozione o modifica di un percorso attendibile per i file.

Errori durante la creazione di una progetto di Cartella di lavoro di Excel basato su una cartella di lavoro esistente

Se si crea un nuovo progetto Cartella di lavoro di Excel basato su una cartella di lavoro esistente, può verificarsi una combinazione degli errori seguenti.

In 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."

In Visual Studio: "Impossibile caricare correttamente la finestra di progettazione."

Questi errori possono verificarsi se si tenta di creare un progetto basato su una cartella di lavoro le cui informazioni personali sono state rimosse mediante Controllo documento. Per evitare questo errore, eseguire i passaggi seguenti prima della creazione del 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.

Impossibile 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 si verifichino 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 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 in computer di sviluppo in cui sia già installato Microsoft Office 2010.

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 i controlli Windows Form, il progetto aggiornato potrebbe presentare errori in fase di compilazione o in fase di esecuzione. Per evitare questo problema, installare Visual Studio 2005 Tools for Office Second Edition Runtime sul computer di sviluppo prima di aggiornare il progetto. La versione di runtime è disponibile come pacchetto ridistribuibile nell'Area download Microsoft in Microsoft Visual Studio 2005 Tools for Office Second Edition Runtime (VSTO 2005 SE) (x86).

Al termine dell'aggiornamento del progetto, è possibile disinstallare Visual Studio 2005 Tools for Office Second Edition Runtime dal computer di sviluppo se non viene utilizzato da altre soluzioni Office.

Le cartelle di lavoro di Excel diventano disabilitate quando viene aperto un progetto di personalizzazione a livello di documento per Excel 2007 in Visual Studio

Quando si apre Excel 2007 e si crea un progetto di personalizzazione a livello di documento per Excel 2007 in Visual Studio, la cartella di lavoro aperta prima non risponde più.

Per risolvere questo problema, fare clic sul foglio di lavoro visibile nella finestra di progettazione di Visual Studio. La cartella di lavoro aperta prima riprende a rispondere.

Utilizzo delle finestre di progettazione

È possibile che si verifichino i seguenti errori quando si utilizza la finestra di progettazione del documento, della cartella di lavoro o del foglio di lavoro nei progetti a livello di documento.

Impossibile caricare correttamente la finestra di progettazione

Nei seguenti casi, non è possibile aprire la finestra di progettazione in Visual Studio:

  • Excel o Word è già aperto ed è visualizzata una finestra di dialogo modale. Per aprire la finestra di progettazione, verificare se in Excel o Word è aperta una finestra di dialogo modale, quindi chiudere eventuali finestre di dialogo modali aperte. In assenza di finestre di dialogo modali aperte, potrebbe essere necessario eseguire altre azioni prima che Excel o Word rispondano.

  • È in corso il debug del progetto. Per aprire la finestra di progettazione, interrompere o terminare il debug.

  • In un componente aggiuntivo di Excel installato nel computer di sviluppo è visualizzata una finestra di dialogo quando Excel viene avviato. Per creare un progetto a livello di documento di Excel, è necessario disabilitare il componente aggiuntivo.

Controlli visualizzati come rettangoli neri nel documento o nel foglio di lavoro

Se si raggruppano controlli in un documento o in un foglio di lavoro, questi controlli non verranno più riconosciuti da Visual Studio. I controlli raggruppati non sono accessibili dalla finestra Proprietà e vengono visualizzati come rettangoli neri nel documento o nel foglio di lavoro. Per ripristinarne la funzionalità, è necessario separare i controlli.

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. Ciò si verifica in quanto in Visual Studio i modelli di Word vengono aperti nella visualizzazione Normale. Per visualizzare i controlli, fare clic sul menu Visualizza, selezionare la visualizzazione di Microsoft Office Word e quindi fare clic su Layout di stampa.

Nessun effetto del comando Inserisci ClipArt nella finestra di progettazione di Visual Studio

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

Scrittura di codice

Quando si scrive codice in progetti di Office possono verificarsi gli errori seguenti.

Alcuni eventi degli oggetti di Office non sono accessibili quando si utilizza C#

In alcuni casi, può verificarsi un errore del compilatore analogo al seguente quando si tenta di accedere a un particolare evento di un'istanza di un tipo di assembly di interoperabilità primario (PIA) 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 di un altro metodo dell'oggetto. Per accedere all'evento, è necessario eseguire il cast dell'oggetto all'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 utilizzano la convenzione di denominazione nomeoggettoEventsn_Event, ad esempio Microsoft.Office.Interop.Excel.AppEvents_Event e Microsoft.Office.Interop.Word.ApplicationEvents2_Event. Se non è possibile accedere a un evento che si prevede di trovare in un oggetto, eseguire il cast dell'oggetto all'interfaccia eventi.

Ad esempio, gli oggetti Microsoft.Office.Interop.Excel.Application presentano 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. 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 ulteriori informazioni sulle interfacce eventi negli assembly di interoperabilità primari di Office, vedere Overview of Classes and Interfaces in the Office Primary Interop Assemblies.

Impossibile fare riferimento a classi di assembly di interoperabilità primari di Office in destinati a .NET Framework 4

Nei progetti destinati a .NET Framework 4, il codice che fa riferimento a una classe definita in un assembly di interoperabilità primario non viene compilato per impostazione predefinita. Le classi nell'assembly di interoperabilità primario utilizzano la convenzione di denominazione nomeoggettoClass, ad esempio DocumentClass e WorkbookClass. Ad esempio, il codice seguente di un progetto di componente aggiuntivo di Word non viene compilato.

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

Questo codice produce i seguenti errori di compilazione:

  • Visual Basic: "Riferimento alla classe ‘DocumentClass’ non consentito quando il relativo assembly viene collegato in modalità No-PIA"

  • Visual C#: "Impossibile incorporare il tipo di interoperabilità ‘Microsoft.Office.Interop.Word.DocumentClass’. In alternativa, utilizzare l'interfaccia applicabile."

Per risolvere questo 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.

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

I progetti destinata a .NET Framework 4 incorporano automaticamente tutti i tipi di interoperabilità dagli assembly di interoperabilità primari di Office per impostazione predefinita. Questo errore di compilazione si verifica perché la funzionalità dei tipi di interoperabilità incorporati funziona solo con le interfacce, non con le classi. Per ulteriori informazioni su interfacce e classi, negli assembly di interoperabilità primari di Office, vedere i cenni preliminari su classi e interfacce negli assembly di interoperabilità primari di Office. Per ulteriori informazioni sulla funzione dei tipi di interoperabilità incorporati nei progetti Office, vedere Progettazione e creazione di soluzioni Office.

Mancato riconoscimento dei riferimenti alle classi di Office

Alcuni nomi di classi, ad esempio Application, sono inclusi in più spazi dei nomi, ad esempio Microsoft.Office.Interop.Word e System.Windows.Forms. Per questo motivo, l'istruzione Imports/using all'inizio dei modelli di progetto include una costante di qualificazione in forma abbreviata, ad esempio:

Imports Word = Microsoft.Office.Interop.Word
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:

Dim doc As Word.Document
Word.Document doc;

Se si utilizza una dichiarazione senza qualificatore, verranno generati errori. Ad esempio:

Dim doc As Document  ' Class is ambiguous
Document doc;  // Class is ambiguous

Nonostante l'importazione dello spazio dei nomi di Word o Excel e la possibilità di accedere a tutte le classi in esso contenute, per rimuovere ogni ambiguità relativa allo spazio dei nomi è necessario qualificare tutti i tipi con Word o Excel.

Compilazione di progetti

Quando si compilano progetti di Office possono verificarsi gli errori seguenti.

Impossibilità di compilare un progetto a livello di documento basato su un documento con autorizzazioni limitate

In Visual Studio non è possibile compilare progetti a livello di documento se il documento dispone di autorizzazioni limitate. La compilazione dei progetti che contengono un documento con autorizzazioni limitate avrà esito negativo e nella finestra Elenco errori verrà visualizzato il messaggio seguente:

"Impossibile aggiungere la personalizzazione."

Se si desidera includere un documento con autorizzazioni limitate, utilizzare un documento senza restrizioni durante le lo sviluppo e la compilazione della soluzione. Quindi, dopo aver pubblicato la soluzione, applicare le autorizzazioni limitate al documento nel percorso di pubblicazione.

Errori del compilatore in seguito all'eliminazione di un controllo NamedRange

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 essere rimosso dal progetto e potrebbero verificarsi errori del compilatore. Per assicurarsi che il codice venga rimosso, selezionare sempre il foglio di lavoro contenente il controllo NamedRange in modo da impostarlo come foglio di lavoro attivo prima di eliminare il controllo. Se il codice generato automaticamente non viene eliminato quando si rimuove il controllo, è possibile eliminarlo mediante la finestra di progettazione attivando il foglio di lavoro e apportandovi una modifica in modo che il foglio venga contrassegnato come modificato. La ricompilazione del progetto comporterà la rimozione del codice.

Debug di progetti

Quando si esegue il debug di progetti di Office possono verificarsi gli errori seguenti.

Richiesta di disinstallazione visualizzata al momento della pubblicazione e installazione di una soluzione nel computer di sviluppo

Quando si esegue il debug di una soluzione Office, è possibile che si verifichi l'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 precedentemente nel computer di sviluppo. Per evitare che venga visualizzato questo messaggio, disinstallare la soluzione dall'elenco di 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.

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 su 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 di eseguirne il debug in Visual Studio. Per ulteriori informazioni sui percorsi attendibili, vedere Concessione dell'attendibilità ai documenti.

Errori nell'interruzione dei thread dopo il debug

I progetti di Office in Visual Studio sono conformi a una convenzione di denominazione dei thread che consente al debugger di chiudere il programma nel modo corretto. Al nome dei thread creati nella soluzione è necessario assegnare al nome di ciascun thread il prefisso VSTA_ per consentirne la corretta gestione quando si interrompe il debug. È possibile, ad esempio, impostare la proprietà Name di un thread che attende un evento di rete su VSTA_NetworkListener.

Impossibile eseguire una soluzione Office nel computer di sviluppo oppure impossibile eseguirne il debug

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 utilizza Fusion, il caricatore di assembly .NET Framework, per memorizzare nella cache gli assembly prima di caricare le soluzioni Office. Verificare che Visual Studio sia in grado di scrivere nella cache di Fusion, quindi riprovare. Per ulteriori informazioni, vedere Creazione di copie replicate di assembly.

Errore durante l'arresto del debugger in un progetto a livello di documento dopo l'utilizzo di Modifica e continuazione

Se si utilizza 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, può 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."

Sia che si faccia clic su o su No nella finestra di dialogo, viene interrotto il processo di Excel o Word e viene arrestato 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.

Vedere anche

Attività

Risoluzione dei problemi relativi a errori di runtime nelle soluzioni Office

Risoluzione dei problemi relativi alla sicurezza delle soluzioni Office

Concetti

Risoluzione dei problemi relativi alla distribuzione di soluzioni Office

Altre risorse

Risoluzione dei problemi relativi alle soluzioni Office

Cronologia delle modifiche

Data

Cronologia

Motivo

Maggio 2010

Miglioramento della sezione che fa riferimento alle classi di assembly di interoperabilità primari di Office in progetti destinati a .NET Framework 4.

Miglioramento delle informazioni.