Distribuzione di una soluzione VSTO con Windows Installer

Riepilogo

Informazioni su come distribuire un componente aggiuntivo Microsoft Strumenti di Visual Studio per Office (VSTO) o una soluzione a livello di documento usando un progetto di Programma di installazione di Visual Studio.

Wouter van Vugt, Code Counsel

Ted Pattison, Gruppo Ted Pattison

Questo articolo è stato aggiornato da Microsoft con l'autorizzazione degli autori originali.

Si applica a: Strumenti di Visual Studio per Office, Microsoft Office, Microsoft Visual Studio.

È possibile sviluppare una soluzione VSTO e distribuire la soluzione usando un pacchetto di Windows Installer. Questa discussione include i passaggi per la distribuzione di un semplice componente aggiuntivo di Office.

Metodi di distribuzione

ClickOnce può essere usato facilmente per creare configurazioni per i componenti aggiuntivi e le soluzioni. Tuttavia, non può installare componenti aggiuntivi che richiedono privilegi amministrativi, ad esempio componenti aggiuntivi a livello di computer.

I componenti aggiuntivi che richiedono privilegi amministrativi possono essere installati tramite Windows Installer, ma richiedono più sforzi per creare l'installazione.

Per una panoramica su come distribuire una soluzione VSTO con ClickOnce, vedere Distribuire una soluzione Office con ClickOnce.

Distribuzione di soluzioni Office destinate al runtime VSTO

I pacchetti ClickOnce e Windows Installer devono eseguire le stesse attività rudimentali durante l'installazione di una soluzione Office.

  1. Installare i componenti dei prerequisiti nel computer utente.
  2. Distribuire i componenti specifici per la soluzione.
  3. Per i componenti aggiuntivi, creare voci del Registro di sistema.
  4. Considerare attendibile la soluzione per consentire l'esecuzione.

Componenti prerequisiti necessari nel computer di destinazione

Ecco l'elenco di software che devono essere installati nel computer per eseguire soluzioni VSTO:

  • Microsoft Office 2010 o versione successiva.
  • Microsoft .NET Framework 4 o versione successiva.
  • Microsoft Visual Studio 2010 Tools per Office Runtime. Il runtime fornisce un ambiente che gestisce i componenti aggiuntivi e le soluzioni a livello di documento. Una versione del runtime viene spedita con Microsoft Office, ma è possibile ridistribuire una versione specifica con il componente aggiuntivo.
  • Assembly di interoperabilità primari per Microsoft Office, se non si usano tipi di interoperabilità incorporati.
  • Qualsiasi assembly di utilità a cui fanno riferimento i progetti.

Componenti specifici per la soluzione

Il pacchetto del programma di installazione deve installare questi componenti nel computer dell'utente:

  • Il documento di Microsoft Office, se si crea una soluzione a livello di documento.
  • Assembly di personalizzazione e tutti gli assembly necessari.
  • Componenti aggiuntivi, ad esempio i file di configurazione.
  • Manifesto dell'applicazione (con estensione manifest).
  • Manifesto della distribuzione (con estensione vsto).

Voci del Registro di sistema per i componenti aggiuntivi

Microsoft Office usa le voci del Registro di sistema per individuare e caricare i componenti aggiuntivi. Queste voci del Registro di sistema devono essere create come parte del processo di distribuzione. Per altre informazioni su queste voci del Registro di sistema, vedere Voci del Registro di sistema per i componenti aggiuntivi VSTO.

I componenti aggiuntivi di Outlook che visualizzano aree di modulo personalizzate richiedono voci aggiuntive del Registro di sistema che consentono l'identificazione delle aree del modulo. Per altre informazioni sulle voci del Registro di sistema, vedere Voci del Registro di sistema per le aree del modulo di Outlook.

Le soluzioni a livello di documento non richiedono voci del Registro di sistema. Le proprietà all'interno del documento vengono invece utilizzate per individuare la personalizzazione. Per altre informazioni su queste proprietà, vedere Cenni preliminari sulle proprietà personalizzate dei documenti.

Attendibilità della soluzione VSTO

Per consentire l'esecuzione di una personalizzazione, una soluzione deve essere considerata attendibile dal computer. Il componente aggiuntivo può essere considerato attendibile firmando il manifesto con un certificato, creando una relazione di trust con un elenco di inclusione o installandolo in un percorso attendibile nel computer.

Per altre informazioni su come ottenere un certificato per la firma, vedere Distribuzione ClickOnce e Authenticode. Per altre informazioni sull'attendibilità delle soluzioni, vedere Trusting Office Solutions by Using Inclusion Lists.For more information about trusting solutions, see Trusting Office Solutions by Using Inclusion Lists. È possibile aggiungere una voce di elenco di inclusione con un'azione personalizzata nel file di Windows Installer. Per altre informazioni sull'abilitazione dell'elenco di inclusione, vedere Procedura: Configurare la sicurezza dell'elenco di inclusioni.

Se non viene usata alcuna opzione, viene visualizzata una richiesta di attendibilità all'utente per consentire loro di decidere se considerare attendibile la soluzione.

Per altre informazioni sulla sicurezza correlata alle soluzioni a livello di documento, vedere Concessione dell'attendibilità ai documenti.

Creazione di un programma di installazione di base

I modelli di progetto di installazione e distribuzione sono inclusi nell'estensione Microsoft Programma di installazione di Visual Studio Projects disponibile per il download.

Per creare un programma di installazione per una soluzione Office, è necessario eseguire queste attività:

  • Aggiungere i componenti della soluzione Office che verranno distribuiti.
  • Per i componenti aggiuntivi a livello di applicazione, configurare le chiavi del Registro di sistema.
  • Configurare i componenti prerequisiti in modo che possano essere installati nei computer degli utenti finali.
  • Configurare le condizioni di avvio per verificare che siano disponibili i componenti prerequisiti necessari. Le condizioni di avvio possono essere usate per bloccare l'installazione se tutti i prerequisiti necessari non sono installati.

Il primo passaggio consiste nel creare il progetto di installazione.

Per creare il progetto di installazione di AddIn

  1. Aprire il progetto di componente aggiuntivo di Office che si vuole distribuire. Per questo esempio viene usato un componente aggiuntivo di Excel denominato ExcelAddIn.
  2. Con Project Open di Office, nel menu File espandere Aggiungi e fare clic su Nuovo progetto per aggiungere un nuovo progetto.
  1. Nella finestra di dialogo Aggiungi un nuovo progetto selezionare il modello Progetto di installazione .
  2. Fare clic su Avanti.
  1. Nella casella Nome digitare OfficeAddInSetup.
  1. Fare clic su Crea per creare il nuovo progetto di installazione.

Visual Studio apre Esplora file system per il nuovo progetto di installazione. Esplora file system consente di aggiungere file al progetto di installazione.

Screenshot di Esplora file system per il progetto di installazione

Figura 1: Esplora file system per il progetto di installazione

Il progetto di installazione deve distribuire ExcelAddIn. È possibile configurare il progetto di installazione per questa attività aggiungendo l'output del progetto ExcelAddIn al progetto di installazione.

Per aggiungere l'output del progetto ExcelAddIn

  1. Nel Esplora soluzioni fare clic con il pulsante destro del mouse su OfficeAddInSetup, scegliere Aggiungi e quindi Output progetto.

  2. Nella finestra di dialogo Aggiungi gruppo di output del progetto selezionare ExcelAddIn dall'elenco di progetti e Output primario.

  3. Fare clic su OK per aggiungere l'output del progetto al progetto di installazione.

    Screenshot della finestra di dialogo Aggiungi gruppo di output del progetto di installazione

    Figura 2: Finestra di dialogo Imposta progetto Aggiungi gruppo di output progetto

Il progetto di installazione deve distribuire il manifesto della distribuzione e il manifesto dell'applicazione. Aggiungere questi due file al progetto di installazione come file autonomi dalla cartella di output del progetto ExcelAddIn.

Per aggiungere i manifesti della distribuzione e dell'applicazione

  1. Nel Esplora soluzioni fare clic con il pulsante destro del mouse su OfficeAddInSetup, scegliere Aggiungi e fare clic su File.

  2. Nella finestra di dialogo Aggiungi file passare alla directory di output ExcelAddIn. In genere la directory di output è la sottocartella bin\release della directory radice del progetto, a seconda della configurazione di compilazione selezionata.

  3. Selezionare i file ExcelAddIn.vsto e ExcelAddIn.dll.manifest e fare clic su Apri per aggiungere questi due file al progetto di installazione.

    Screenshot dei manifesti dell'applicazione e della distribuzione in Esplora soluzioni

    Figura 3: Manifesti dell'applicazione e della distribuzione per il componente aggiuntivo Esplora soluzioni

Facendo riferimento a ExcelAddIn sono inclusi tutti i componenti richiesti da ExcelAddIn. Questi componenti devono essere esclusi e distribuiti usando pacchetti prerequisiti per consentire la registrazione corretta. Inoltre, le Condizioni di licenza software devono essere visualizzate e accettate prima dell'inizio dell'installazione.

Per escludere le dipendenze del progetto ExcelAddIn

  1. Nel nodo OfficeAddInSetup del Esplora soluzioni selezionare tutti gli elementi di dipendenza sotto l'elemento Dipendenze rilevate, ad eccezione di Microsoft .NET Framework o di qualsiasi assembly che termina con *. Utilities.dll. Gli assembly di utilità devono essere distribuiti insieme all'applicazione.

  2. Fare clic con il pulsante destro del mouse sul gruppo e scegliere Proprietà.

  3. Nella finestra Proprietà modificare la proprietà Exclude su True per escludere gli assembly dipendenti dal progetto di installazione. Assicurarsi di non escludere assembly di utilità.

    Screenshot di Esplora soluzioni che mostra le dipendenze da escludere

    Figura 4: Esclusione delle dipendenze

È possibile configurare il pacchetto di Windows Installer per installare i componenti prerequisiti aggiungendo un programma di installazione, noto anche come programma di avvio automatico. Questo programma di installazione può installare i componenti dei prerequisiti, un processo denominato bootstrap.

Per ExcelAddIn, questi prerequisiti devono essere installati prima che il componente aggiuntivo possa essere eseguito correttamente:

  • Versione di Microsoft .NET Framework destinata alla soluzione Office.
  • Microsoft Visual Studio 2010 Tools per Office Runtime.

Per configurare i componenti dipendenti come prerequisiti

  1. Nella Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto OfficeAddInSetup e scegliere Proprietà.

  2. Viene visualizzata la finestra di dialogo Pagine delle proprietà OfficeAddInSetup.

  3. Fare clic sul pulsante Prerequisiti .

  4. Nella finestra di dialogo Prerequisiti selezionare la versione corretta di .NET Framework e microsoft Strumenti di Visual Studio per Office Runtime.

    Screenshot della finestra di dialogo Prerequisiti

    Figura 5: Finestra di dialogo Prerequisiti

    Nota

    Alcuni dei pacchetti prerequisiti configurati nel progetto di installazione di Visual Studio dipendono dalla configurazione di compilazione selezionata. È necessario selezionare i componenti prerequisiti corretti per ogni configurazione di compilazione usata.

Microsoft Office individua i componenti aggiuntivi usando le chiavi del Registro di sistema. Le chiavi nell'hive HKEY_CURRENT_USER vengono usate per registrare il componente aggiuntivo per ogni singolo utente. Le chiavi nel HKEY_LOCAL_MACHINE hive vengono usate per registrare il componente aggiuntivo per tutti gli utenti del computer. Per altre informazioni sulle chiavi del Registro di sistema, vedere Voci del Registro di sistema per i componenti aggiuntivi VSTO.

Per configurare il Registro di sistema

  1. Nel Esplora soluzioni fare clic con il pulsante destro del mouse su OfficeAddInSetup.

  2. Espandere Visualizza.

  3. Fare clic su Registro di sistema per aprire la finestra dell'editor del Registro di sistema.

  4. Nell'editor Registry(OfficeAddInSetup) espandere HKEY_LOCAL_MACHINE e quindi Software.

  5. Eliminare la chiave [Produttore] trovata in HKEY_LOCAL_MACHINE\Software.

  6. Espandere HKEY_CURRENT_USER e quindi Software.

  7. Eliminare la chiave [Produttore] trovata in HKEY_CURRENT_USER\Software.

  8. Per aggiungere chiavi del Registro di sistema per l'installazione del componente aggiuntivo, fare clic con il pulsante destro del mouse sulla chiave Hive utente/computer, selezionare Nuova chiave. Usare il testo Software per il nome della nuova chiave. Fare clic con il pulsante destro del mouse sulla chiave software appena creata e creare una nuova chiave con il testo Microsoft.

  9. Usare un processo simile per creare l'intera gerarchia di chiavi necessaria per la registrazione del componente aggiuntivo:

    User/Machine Hive\Software\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn

    Il nome della società viene spesso usato come prefisso per il nome del componente aggiuntivo per fornire l'univocità.

  10. Fare clic con il pulsante destro del mouse sulla chiave SampleCompany.ExcelAddIn , scegliere Nuovo e fare clic su Valore stringa. Usare il testo Description (Descrizione ) per Name (Nome).

  11. Usare questo passaggio per aggiungere altri tre valori:

    • FriendlyName di tipo String
    • LoadBehavior di tipo DWORD
    • Manifesto di tipo String
  12. Fare clic con il pulsante destro del mouse sul valore Descrizione nell'editor del Registro di sistema e scegliere Finestra Proprietà. Nella finestra Proprietà immettere Componente aggiuntivo demo di Excel per la proprietà Value.

  13. Selezionare la chiave FriendlyName nell'editor del Registro di sistema. Nella finestra Proprietà modificare la proprietà Value in Excel Demo AddIn.

  14. Selezionare la chiave LoadBehavior nell'editor del Registro di sistema. Nella finestra Proprietà impostare la proprietà Value su 3. Il valore 3 per LoadBehavior indica che il componente aggiuntivo deve essere caricato all'avvio dell'applicazione host. Per altre informazioni sul comportamento di caricamento, vedere Voci del Registro di sistema per i componenti aggiuntivi VSTO.

  15. Selezionare la chiave manifesto nell'editor del Registro di sistema. Nella finestra Proprietà modificare la proprietà Value in file:///[TARGETDIR]ExcelAddIn.vsto|vstolocal

    Screenshot dell'editor del Registro di sistema

    Figura 6: Configurazione delle chiavi del Registro di sistema

    Il runtime VSTO usa questa chiave del Registro di sistema per individuare il manifesto della distribuzione. La macro [TARGETDIR] verrà sostituita con la cartella in cui è installato il componente aggiuntivo. La macro includerà il carattere \ finale, quindi il nome file del manifesto della distribuzione deve essere ExcelAddIn.vsto senza il carattere \ . Il prefisso vstolocal , indica al runtime VSTO che il componente aggiuntivo deve essere caricato da questo percorso anziché dalla cache ClickOnce. Se si rimuove questo prefisso, il runtime copia la personalizzazione nella cache ClickOnce.

Avviso

È consigliabile prestare molta attenzione all'editor del Registro di sistema in Visual Studio. Ad esempio, se si imposta accidentalmente DeleteAtUninstall per la chiave errata, è possibile eliminare una parte attiva del Registro di sistema, lasciando il computer utente in uno stato incoerente o, ancora peggio, interrotto.

Le versioni a 64 bit di Office useranno l'hive del Registro di sistema a 64 bit per cercare i componenti aggiuntivi. Per registrare i componenti aggiuntivi nell'hive del Registro di sistema a 64 bit, la piattaforma di destinazione del progetto di installazione deve essere impostata solo a 64 bit.

  1. Selezionare il progetto OfficeAddInSetup in Esplora soluzioni.
  2. Passare alla finestra Proprietà e impostare la proprietà TargetPlatform su x64.

L'installazione di un componente aggiuntivo per le versioni a 32 bit e a 64 bit di Office richiederà di creare due pacchetti MSI separati. Uno per 32 bit e uno per 64 bit.

Screenshot della finestra Proprietà che mostra la piattaforma di destinazione per la registrazione dei componenti aggiuntivi con Office a 64 bit

Figura 7: Piattaforma di destinazione per la registrazione di componenti aggiuntivi con Office a 64 bit

Se il pacchetto MSI viene usato per installare il componente aggiuntivo o la soluzione, può essere installato senza i prerequisiti necessari. È possibile usare condizioni di avvio nell'identità del servizio gestito per impedire l'installazione del componente aggiuntivo se i prerequisiti non sono installati.

Configurare una condizione di avvio per rilevare il runtime VSTO

  1. Nel Esplora soluzioni fare clic con il pulsante destro del mouse su OfficeAddInSetup.

  2. Espandere Visualizza.

  3. Fare clic su Condizioni di avvio.

  4. Nell'editor Condizioni di avvio (OfficeAddInSetup) fare clic con il pulsante destro del mouse su Requisiti nel computer di destinazione e quindi scegliere Aggiungi condizione di avvio del Registro di sistema. Questa condizione di ricerca può cercare nel Registro di sistema una chiave installata dal runtime VSTO. Il valore della chiave è quindi disponibile per le varie parti del programma di installazione tramite una proprietà denominata. La condizione di avvio usa la proprietà definita dalla condizione di ricerca per verificare la presenza di un determinato valore.

  5. Nell'editor Condizioni di avvio (OfficeAddInSetup) selezionare la condizione di ricerca Cerca RegistroEntry1 , fare clic con il pulsante destro del mouse sulla condizione e selezionare Finestra Proprietà.

  6. Nella finestra Proprietà impostare queste proprietà:

    1. Impostare il valore di (Name) su Search for VSTO 2010 Runtime (Cerca runtime VSTO 2010).
    2. Modificare il valore di Property in VSTORUNTIMEREDIST.
    3. Impostare il valore di RegKey su SOFTWARE\Microsoft\VSTO Runtime Setup\v4R
    4. Lasciare la proprietà Root impostata su vsdrrHKLM.
    5. Modificare la proprietà Value impostandola su Version.
  7. Nell'editor Condizioni di avvio (OfficeAddInSetup) selezionare la condizione di avvio Condition1 , fare clic con il pulsante destro del mouse sulla condizione e selezionare Finestra Proprietà.

  8. Nella finestra Proprietà impostare queste proprietà:

    1. Impostare (Nome) su Verify VSTO 2010 Runtime availability (Verificare la disponibilità del runtime VSTO 2010).

    2. Modificare il valore della condizione in VSTORUNTIMEREDIST>="10.0.30319"

    3. Lasciare vuota la proprietà InstallURL .

    4. Impostare Il messaggio su Visual Studio 2010 Tools per Office Runtime non è installato. Eseguire Setup.exe per installare il componente aggiuntivo.

      Screenshot della finestra Proprietà per la condizione di avvio Verifica disponibilità runtime

      Figura 8: Finestra Proprietà per la condizione di avvio Verifica disponibilità runtime

La condizione di avvio precedente verifica in modo esplicito la presenza del runtime VSTO quando viene installata dal pacchetto del programma di avvio automatico.

Configurare una condizione di avvio per rilevare il runtime VSTO installato da Office

  1. Nell'editor Condizioni di avvio (OfficeAddInSetup) fare clic con il pulsante destro del mouse su Cerca computer di destinazione e quindi scegliere Aggiungi ricerca registro di sistema.

  2. Selezionare la condizione di ricerca Cerca RegistryEntry1 , fare clic con il pulsante destro del mouse sulla condizione e selezionare Finestra Proprietà.

  3. Nella finestra Proprietà impostare queste proprietà:

    1. Impostare il valore di (Name) su Cerca runtime VSTO di Office.
    2. Modificare il valore di Property in OfficeRuntime.
    3. Impostare il valore di RegKey su SOFTWARE\Microsoft\VSTO Runtime Setup\v4.
    4. Lasciare la proprietà Root impostata su vsdrrHKLM.
    5. Modificare la proprietà Value impostandola su Version.
  4. Nell'editor Condizioni di avvio (OfficeAddInSetup) selezionare la condizione Di avvio della disponibilità del runtime VSTO 2010 definita in precedenza, fare clic con il pulsante destro del mouse sulla condizione e selezionare Finestra Proprietà.

  5. Modificare il valore della proprietà Condition in VSTORUNTIMEREDIST >="10.0.30319" O OFFICERUNTIME>="10.0.21022". I numeri di versione potrebbero essere diversi a seconda delle versioni del runtime richieste dal componente aggiuntivo.

    Screenshot di Proprietà di Windows per la condizione di avvio

    Figura 9: Proprietà di Windows per la verifica della disponibilità del runtime tramite la condizione di avvio di Redist o Office

Se un componente aggiuntivo è destinato a .NET Framework 4 o versione successiva, i tipi all'interno degli assembly di interoperabilità primari (PIA) a cui si fa riferimento possono essere incorporati nell'assembly VSTO.

Per verificare se i tipi di interoperabilità verranno incorporati nel componente aggiuntivo seguendo questa procedura:

  1. Espandere il nodo Riferimenti in Esplora soluzioni
  2. Selezionare uno dei riferimenti al pia, ad esempio Office.
  3. Visualizzare le finestre delle proprietà premendo F4 o selezionando Proprietà dal menu di scelta rapida Assembly.
  4. Controllare il valore della proprietà Incorpora tipi di interoperabilità.

Se il valore è impostato su True, i tipi vengono incorporati ed è possibile passare alla sezione Per compilare il progetto di installazione.

Per altre informazioni, vedere Equivalenza dei tipi e tipi di interoperabilità incorporati

Per configurare le condizioni di avvio per rilevare che per le applicazioni personali di Office

  1. Nell'editor Condizioni di avvio (OfficeAddInSetup) fare clic con il pulsante destro del mouse su Requisiti nel computer di destinazione e quindi scegliere Aggiungi condizione di avvio di Windows Installer. Questa condizione di avvio cerca un pia di Office cercando l'ID componente specifico.

  2. Fare clic con il pulsante destro del mouse su Cerca Componente1 e scegliere Finestra Proprietà per visualizzare le proprietà della condizione di avvio.

  3. Nella finestra Proprietà impostare queste proprietà:

    1. Modificare il valore della proprietà (Name) in Cerca pia condivisa di Office
    2. Modificare il valore di ComponentID in ID componente per il componente di Office in uso. È possibile trovare l'elenco degli ID componente nella tabella seguente, ad esempio {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4}.
    3. Modificare il valore della proprietà Property in HASSHAREDPIA.
  4. Nell'editor Condizioni di avvio (OfficeAddInSetup) fare clic con il pulsante destro del mouse su Condition1 e scegliere Finestra Proprietà per visualizzare le proprietà della condizione di avvio.

  5. Modificare queste proprietà di Condition1:

    1. Modificare (Nome) in Verificare la disponibilità dell'pia condivisa di Office.
    2. Modificare la condizione in HASSHAREDPIA.
    3. Lasciare vuoto InstallUrl .
    4. Modificare il messaggio in Un componente obbligatorio per interagire con Excel non è disponibile. Eseguire setup.exe.

    Screenshot della finestra Proprietà per la condizione di avvio dell'pia condivisa di Office

    Figura 10: Finestra Proprietà per la condizione di avvio dell'pia condivisa di Office

ID componente degli assembly di interoperabilità primari per Microsoft Office

Assembly di interoperabilità primario Office 2010 Office 2013 Office 2013 (64 bit) Office 2016 Office 2016 (64 bit)
Excel {EA7564AC-C67D-4868-BE5C-26E4FC2223FF} {C8A65ABE-3270-4FD7-B854-50C8082C8F39} {E3BD1151-B9CA-4D45-A77E-51A6E0ED322A} {C845E028-E091-442E-8202-21F596C559A0} {C4ACE6DB-AA99-401F-8BE6-8784BD09F003}
InfoPath {4153F732-D670-4E44-8AB7-500F2B576BDA} {0F825A16-25B2-4771-A497-FC8AF3B355D8} {C5BBD36E-B320-47EF-A512-556B99CB7E41} - -
Outlook {1D844339-3DAE-413E-BC13-62D6A52816B2} {F9F828D5-9F0B-46F9-9E3E-9C59F3C5E136} {7824A03F-28CC-4371-BC54-93D15EFC1E7F} {2C6C511D-4542-4E0C-95D0-05D4406032F2} {7C6D92EF-7B45-46E5-8670-819663220E4E}
PowerPoint {EECBA6B8-3A62-44AD-99EB-8666265466F9} {813139AD-6DAB-4DDD-8C6D-0CA30D073B41} {05758318-BCFD-4288-AD8D-81185841C235} {9E73CEA4-29D0-4D16-8FB9-5AB17387C960} {E0A76492-0FD5-4EC2-8570-AE1BAA61DC88}
Visio {3EA123B5-6316-452E-9D51-A489E06E2347} {C1713368-12A8-41F1-ACA1-934B01AD6EEB} {2CC0B221-22D2-4C15-A9FB-DE818E51AF75} {A4C55BC1-B94C-4058-B15C-B9D4AE540AD1} {2D4540EC-2C88-4C28-AE88-2614B5460648}
Word {8B74A499-37F8-4DEA-B5A0-D72FC501CEFA} {9FE736B7-B1EE-410C-8D07-082891C3DAC8} {13C07AF5-B206-4A48-BB5B-B8022333E3CA} {30CAC893-3CA4-494C-A5E9-A99141352216} {DC5CCACD-A7AC-4FD3-9F70-9454B5DE5161}
Microsoft Forms 2.0 {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {A5A30117-2D2A-4C5C-B3C8-8897AC32C2AC} - -
Microsoft Graph {011B9112-EBB1-4A6C-86CB-C2FDC9EA7B0E} {52DA4B37-B8EB-4B7F-89C1-824654CE4C70} {24706F33-F0CE-4EB4-BC91-9E935394F510} - -
Smart tag {7102C98C-EF47-4F04-A227-FE33650BF954} {487A7921-EB3A-4262-BB5B-A5736B732486} {74EFC1F9-747D-4867-B951-EFCF29F51AF7} - -
Office Condiviso {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4} {6A174BDB-0049-4D1C-86EF-3114CB0C4C4E} {76601EBB-44A7-49EE-8DE3-7B7B9D7EBB05} {68477CB0-662A-48FB-AF2E-9573C92869F7} {625F5772-C1B3-497E-8ABE-7254EDB00506}
Project {957A4EC0-E67B-4E86-A383-6AF7270B216A} {1C50E422-24FA-44A9-A120-E88280C8C341} {706D7F44-8231-489D-9B25-3025ADE9F114} {0B6EDA1D-4A15-4F88-8B20-EA6528978E4E} {107BCD9A-F1DC-4004-A444-33706FC10058}

Screenshot delle condizioni di avvio finale

Figura 11: Condizioni di lancio finali

È possibile perfezionare ulteriormente le condizioni di avvio per l'installazione di ExcelAddIn. Ad esempio, può essere utile verificare se è installata la destinazione effettiva app Office lication.

Per compilare il progetto di installazione

  1. Nel Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto OfficeAddInSetup e scegliere Compila.
  2. Usando Esplora risorse passare alla directory di output del progetto OfficeAddInSetup e passare alla cartella Release o Debug, a seconda della configurazione di compilazione selezionata. Copiare tutti i file dalla cartella in un percorso a cui gli utenti possono accedere.

Per testare l'installazione di ExcelAddIn

  1. Passare al percorso in cui è stato copiato OfficeAddInSetup .
  2. Fare doppio clic sul file setup.exe per installare il componente aggiuntivo OfficeAddInSetup . Accettare le condizioni di licenza software visualizzate e completare l'installazione guidata per installare il componente aggiuntivo nel computer utente.

La soluzione Excel Office deve installare ed eseguire dal percorso specificato durante l'installazione.

Requisiti aggiuntivi per le soluzioni a livello di documento

La distribuzione di soluzioni a livello di documento richiede alcuni passaggi di configurazione diversi nel progetto di installazione di Windows Installer.

Ecco un elenco dei passaggi di base necessari per distribuire una soluzione a livello di documento:

  • Creare il progetto di installazione di Visual Studio.
  • Aggiungere l'output principale della soluzione a livello di documento. L'output principale include anche il documento di Microsoft Office.
  • Aggiungere i manifesti della distribuzione e dell'applicazione come file separati.
  • Escludere i componenti dipendenti dal pacchetto del programma di installazione (ad eccezione di eventuali assembly di utilità).
  • Configurare i pacchetti prerequisiti.
  • Configurare le condizioni di avvio.
  • Compilare il progetto di installazione e copiare i risultati nel percorso di distribuzione.
  • Distribuire la soluzione a livello di documento nel computer utente eseguendo l'installazione.
  • Aggiornare le proprietà personalizzate del documento, se necessario.

Modifica del percorso del documento distribuito

Le proprietà all'interno di un documento di Office vengono utilizzate per individuare le soluzioni a livello di documento. Se il documento viene installato nella stessa cartella dell'assembly VSTO, non sono necessarie modifiche. Tuttavia, se è installato in una cartella diversa, queste proprietà dovranno essere aggiornate durante l'installazione.

Per altre informazioni su queste proprietà del documento, vedere Cenni preliminari sulle proprietà personalizzate dei documenti.

Per modificare queste proprietà, è necessario usare un'azione personalizzata durante l'installazione.

Nell'esempio seguente viene utilizzata una soluzione a livello di documento denominata ExcelWorkbookProject e un progetto di installazione denominato ExcelWorkbookSetup. Il progetto ExcelWorkbookSetup viene configurato usando gli stessi passaggi descritti in precedenza, ad eccezione dell'impostazione delle chiavi del Registro di sistema.

Per aggiungere il progetto di azione personalizzato alla soluzione di Visual Studio

  1. Aggiungere un nuovo progetto console .NET alla soluzione facendo clic con il pulsante destro del mouse sul progetto di distribuzione documenti di Office nel Esplora soluzioni

  2. Espandere Aggiungi e fare clic su Nuovo progetto.

  3. Selezionare il modello App console e assegnare al progetto il nome AddCustomizationCustomAction.

    Screenshot della Esplora soluzioni - AddCustomizationCustomAction

    Figura 12: Esplora soluzioni - AddCustomizationCustomAction

  4. Aggiungere un riferimento a questi assembly:

    1. System.ComponentModel
    2. System.Configuration.Install
    3. Microsoft.VisualStudio.Tools.Applications
    4. Microsoft.VisualStudio.Tools.Applications.ServerDocument
  5. Copiare questo codice in Program.cs o Program.vb

    using System;
    using System.IO;
    using System.Collections;
    using System.ComponentModel;
    using System.Configuration.Install;
    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;

    namespace AddCustomizationCustomAction
    {
        [RunInstaller(true)]
        public class AddCustomizations : Installer
        {
            public AddCustomizations() : base() { }

            public override void Install(IDictionary savedState)
            {
                base.Install(savedState);

                //Get the CustomActionData Parameters
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;
                string assemblyLocation = Context.Parameters.ContainsKey("assemblyLocation") ? Context.Parameters["assemblyLocation"] : String.Empty;
                string deploymentManifestLocation = Context.Parameters.ContainsKey("deploymentManifestLocation") ? Context.Parameters["deploymentManifestLocation"] : String.Empty;
                Guid solutionID = Context.Parameters.ContainsKey("solutionID") ? new Guid(Context.Parameters["solutionID"]) : new Guid();

                string newDocLocation = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation));

                try
                {
                    //Move the file and set the Customizations
                    if (Uri.TryCreate(deploymentManifestLocation, UriKind.Absolute, out Uri docManifestLocationUri))
                    {
                        File.Move(documentLocation, newDocLocation);
                        ServerDocument.RemoveCustomization(newDocLocation);
                        ServerDocument.AddCustomization(newDocLocation, assemblyLocation,
                                                        solutionID, docManifestLocationUri,
                                                        true, out string[] nonpublicCachedDataMembers);
                    }
                    else
                    {
                        LogMessage("The document could not be customized.");
                    }
                }
                catch (ArgumentException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (DocumentNotCustomizedException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (InvalidOperationException)
                {
                    LogMessage("The customization could not be removed.");
                }
                catch (IOException)
                {
                    LogMessage("The document does not exist or is read-only.");
                }
            }

            public override void Rollback(IDictionary savedState)
            {
                base.Rollback(savedState);
                DeleteDocument();
            }
            public override void Uninstall(IDictionary savedState)
            {
                base.Uninstall(savedState);
                DeleteDocument();
            }
            private void DeleteDocument()
            {
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;

                try
                {
                    File.Delete(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation)));
                }
                catch (Exception)
                {
                    LogMessage("The document doesn't exist or is read-only.");
                }
            }
            private void LogMessage(string Message)
            {
                if (Context.Parameters.ContainsKey("LogFile"))
                {
                    Context.LogMessage(Message);
                }
            }

            static void Main() { }
            }
    }

Per aggiungere la personalizzazione al documento, è necessario avere l'ID soluzione della soluzione a livello di documento VSTO. Questo valore viene recuperato dal file di progetto di Visual Studio.

Per recuperare l'ID soluzione

  1. Scegliere Compila soluzione dal menu Compila per compilare la soluzione a livello di documento e aggiungere la proprietà ID soluzione al file di progetto.

  2. Nella Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto a livello di documento ExcelWorkbookProject

  3. Fare clic su ScaricaProgetto per accedere al file di progetto da Visual Studio.

    Screenshot di Esplora soluzioni scaricamento della soluzione documento di Excel

    Figura 13: Scaricamento della soluzione documento excel

  4. Nella Esplora soluzioni fare clic con il pulsante destro del mouse su ExcelWorkbookProject e scegliere ModificaExcelWorkbookProject.vbproj o Modifica ExcelWorkbookProject.csproj.

  5. Nell'editor ExcelWorkbookProject individuare l'elemento SolutionID all'interno dell'elemento PropertyGroup .

  6. Copiare il valore GUID di questo elemento.

    Recupero dell'ID soluzione

    Figura 14: Recupero dell'ID soluzione

  7. Nella Esplora soluzioni fare clic con il pulsante destro del mouse su ExcelWorkbookProject e scegliere Ricarica progetto.

  8. Fare clic su nella finestra di dialogo visualizzata per chiudere l'editor ExcelWorkbookProject .

  9. L'ID soluzione verrà usato nell'azione personalizzata Installa.

L'ultimo passaggio consiste nel configurare l'azione personalizzata per i passaggi Installa e Disinstalla .

Per configurare il progetto di installazione

  1. Nel Esplora soluzioni fare clic con il pulsante destro del mouse su ExcelWorkbookSetup, espandere Aggiungi e fare clic su Output progetto.

  2. Nell'elenco Progetto della finestra di dialogo Aggiungi gruppo di output del progetto fare clic su AggiungiCustomizationCustomAction.

  3. Selezionare Output primario e fare clic su OK per chiudere la finestra di dialogo e aggiungere l'assembly contenente l'azione personalizzata al progetto di installazione.

    Screenshot dell'azione personalizzata del manifesto del documento - Finestra Aggiungi gruppo di output del progetto

    Figura 15: Azione personalizzata del manifesto del documento - Aggiungere un gruppo di output del progetto

  4. Nel Esplora soluzioni fare clic con il pulsante destro del mouse su ExcelWorkbookSetup.

  5. Espandere Visualizza e fare clic su Azioni personalizzate.

  6. Nell'editor Azioni personalizzate (ExcelWorkbookSetup) fare clic con il pulsante destro del mouse su Azioni personalizzate e scegliere Aggiungi azione personalizzata.

  7. Nella finestra di dialogo Seleziona elemento nel progetto, nell'elenco Cerca in fare clic su Cartella applicazione. Selezionare Output primario da AddCustomizationCustomAction(active) e fare clic su OK per aggiungere l'azione personalizzata al passaggio Installa.

  8. Nel nodo Installa fare clic con il pulsante destro del mouse su Output primario da AddCustomizationCustomAction(Active)e scegliere Rinomina. Assegnare un nome all'azione personalizzata Copiare il documento in Documenti personali e allegare la personalizzazione.

  9. Nel nodo Disinstalla fare clic con il pulsante destro del mouse su Output primario da AddCustomizationCustomAction(Active) e scegliere Rinomina. Denominare l'azione personalizzata Rimuovi documento dalla cartella Documenti.

    Screenshot della finestra Azioni personalizzate del manifesto del documento

    Figura 16: Azioni personalizzate del manifesto del documento

  10. Nell'editor Azioni personalizzate (ExcelWorkbookSetup) fare clic con il pulsante destro del mouse su Copia documento nei documenti e allegare la personalizzazione e fare clic su Finestra Proprietà.

  11. Nella finestra Proprietà CustomActionData immettere il percorso della DLL di personalizzazione, il manifesto della distribuzione e il percorso del documento di Microsoft Office. È necessario anche SolutionID.

  12. Se si desidera registrare eventuali errori di installazione in un file, includere un parametro LogFile. s

    /assemblyLocation="[INSTALLDIR]ExcelWorkbookProject.dll" /deploymentManifestLocation="[INSTALLDIR]ExcelWorkbookProject.vsto" /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx" /solutionID="Your Solution ID" /LogFile="[TARGETDIR]Setup.log"
    

    Screenshot dell'azione personalizzata per copiare documenti nei documenti Finestra Proprietà

    Figura 17: Azione personalizzata per copiare documenti nei documenti

  13. L'azione personalizzata per la disinstallazione richiede il nome del documento, è possibile specificare che usando lo stesso parametro documentLocation in CustomActionData

    /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx"
    
  14. Compilare e distribuire il progetto ExcelWorkbookSetup .

  15. Cercare nella cartella Documenti e aprire il file ExcelWorkbookProject.xlsx.

Risorse aggiuntive

Procedura: Installare il Strumenti di Visual Studio per Office Runtime

Office Primary Interop Assemblies

Voci del Registro di sistema per i componenti aggiuntivi VSTO

Custom Document Properties Overview

Specifica di aree del modulo nel Registro di sistema di Windows

Granting Trust to Documents

Informazioni sugli autori

Wouter van Vugt è un MVP Microsoft con tecnologie Office Open XML e un consulente indipendente incentrato sulla creazione di App Office Business licazioni (OBA) con SharePoint, Microsoft Office e le tecnologie .NET correlate. Wouter è un collaboratore frequente ai siti della community per sviluppatori, ad esempio MSDN. Ha pubblicato diversi white paper e articoli, nonché un libro disponibile in linea intitolato Open XML: e-book spiegato. Wouter è il fondatore di Code-Counsel, una società olandese che si concentra sulla fornitura di contenuti tecnici all'avanguardia attraverso una varietà di canali. Per altre informazioni su Wouter, leggere il suo blog.

Ted Pattison è un MVP di SharePoint, autore, formatore e fondatore di Ted Pattison Group. Nell'autunno del 2005, Ted è stato assunto dal gruppo Developer Platform Evangelism di Microsoft per creare il curriculum di formazione per sviluppatori Ascend per Windows SharePoint Services 3.0 e Microsoft Office SharePoint Server 2007. Da quel momento, Ted è stato interamente incentrato sulla formazione di sviluppatori professionisti sulle tecnologie di SharePoint 2007. Ted ha terminato di scrivere un libro per Microsoft Press intitolato Inside Windows SharePoint Services 3.0 che si concentra su come usare SharePoint come piattaforma di sviluppo per la creazione di soluzioni aziendali. Ted scrive anche una colonna incentrata sullo sviluppatore per MSDN Magazine intitolata Office Space.