Procedura dettagliata: distribuzione di più soluzioni Office in un unico programma di installazione ClickOnce
Per semplificare il processo di installazione e aggiornamento è possibile distribuire più soluzioni Office in un solo package. A tale scopo occorre modificare e firmare nuovamente i manifesti di applicazione e di distribuzione dopo la pubblicazione e prima dell'installazione.
Si applica a: Le informazioni fornite in questo argomento sono valide per i progetti a livello di documento e di applicazione per Microsoft Office 2013 Preview e Microsoft Office 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.
In questa procedura dettagliata vengono illustrate le attività seguenti:
Creazione di più soluzioni Office.
Modifica del manifesto di applicazione.
Nuova firma dei manifesti.
Nota
Il computer potrebbe mostrare nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.
Prerequisiti
Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:
-
Una versione di Visual Studio 2012 che include gli strumenti per sviluppatori di Microsoft Office. Per ulteriori informazioni, vedere [Configurazione di un computer per sviluppare soluzioni Office](https://msdn.microsoft.com/it-it/library/bb398242\(v=vs.110\)).
Anteprima Word 2013
Anteprima Outlook 2013
Anteprima Excel 2013
Word 2010
Outlook 2010
Excel 2010
Computer di prova.
Creazione di più soluzioni Office
Iniziare con la creazione di tre progetti Office, di cui uno funzionerà come programma di installazione. Gli altri due verranno implementati nel computer dell'utente finale.
Per creare e sviluppare nuovi progetti Word, Outlook ed Excel
Creare un progetto a livello di documento Word. Denominare il progetto ContosoInstaller e salvarlo nella directory %USERPROFILE%\Documenti\Visual Studio 2012\Projects.
Il progetto ContosoInstaller verrà utilizzato come programma di installazione. Per ulteriori informazioni, vedere Procedura: creare progetti di Office in Visual Studio.
Nella soluzione ContosoInstaller, aggiungere un progetto a livello di applicazione Outlook denominato ContosoOutlookAddin. Quindi, aggiungere il codice desiderato nel progetto Outlook.
Nella soluzione ContosoInstaller, aggiungere un progetto a livello di documento Excel denominato ContosoExcelWorkbook. Quindi, aggiungere il codice desiderato nel progetto Excel.
Pubblicazione delle soluzioni Office
Utilizzare Pubblicazione guidata o la pagina Progetto di Progettazione progetti per pubblicare le soluzioni Office nel computer di sviluppo.
Per pubblicare i progetti Word, Outlook ed Excel
Pubblicare il progetto ContosoInstaller nella cartella c:\publish. Per ulteriori informazioni, vedere Procedura: pubblicare una soluzione Office utilizzando ClickOnce.
Pubblicare il progetto ContosoOutlookAddIn nella cartella c:\publish.
Pubblicare il progetto ContosoExcelWorkbook nella cartella c:\publish.
Modifica del manifesto di applicazione
Utilizzare l'editor XML in Visual Studio per aggiungere dipendenze di installazione, file, punti di ingresso e assembly al manifesto dell'applicazione. Il contenuto di un manifesto dell'applicazione è simile a una distinta dei materiali, nella quale è elencato l'intero contenuto di una scatola; un manifesto dell'applicazione elenca tutti gli assembly necessari e dipendenti e i file richiesti dall'applicazione. Nel manifesto dell'applicazione di una soluzione Office sono inoltre elencati gli assembly che devono essere caricati da un'applicazione di Office per i componenti aggiuntivi a livello di applicazione e le personalizzazioni a livello di documento.
Aggiunta di dipendenze di installazione
Modificare il manifesto di applicazione affinché installi gli assembly ContosoOutlookAddin e ContosoExcelWorkbook. Quindi, rimuovere i riferimenti all'assembly ContosoInstaller.
Per aggiungere dipendenze di installazione al manifesto di applicazione
Dalla cartella c:\publish\Application Files, spostare il contenuto delle directory ContosoOutlookAddIn_1_0_0_0 e ContosoExcelWorkbook_1_0_0_0 nella directory ContosoInstaller_1_0_0_0.
Aprire i file ContosoInstaller.dll.manifest, ContosoOutlookAddIn.dll.manifest e ContosoExcelWorkbook.dll.manifest in un editor XML.
Dal file ContosoOutlookAddIn.dll.manifest copiare tutte le dipendenze di installazione e del file, inclusa ContosoOutlookAddIn.dll. In altre parole, copiare tutte le dipendenze che iniziano con <dependentAssembly dependencyType="install" o <file name="app.config">. Il codice dovrebbe essere analogo al seguente: solo l'elemento <dsig:DigestValue> sarà diverso.
<dependency> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Office.Tools.Common.v4.0.Utilities.dll" size="30816"> <assemblyIdentity name="Microsoft.Office.Tools.Common.v4.0.Utilities" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>Ki0…</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <dependency> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Office.Tools.Outlook.v4.0.Utilities.dll" size="47200"> <assemblyIdentity name="Microsoft.Office.Tools.Outlook.v4.0.Utilities" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>050...</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <dependency> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="ContosoOutlookAddIn.dll" size="10240"> <assemblyIdentity name="ContosoOutlookAddIn" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm= "urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm= "http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>i4e</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <file name="ContosoOutlookAddIn.dll.config" size="77"> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>w7W...</dsig:DigestValue> </hash> </file>
Nel file ContosoInstaller.dll.manifest, incollare la dipendenza di installazione ContosoOutlookAddIn.dll alla fine della sezione delle dipendenze.
Dal file ContosoExcelWorkbook.dll.manifest copiare tutte le dipendenze di installazione e del file, incluse ContosoExcelWorkbook.dll e Microsoft.Office.Tools.Common.v4.0.Utilities.dll. In altre parole, copiare tutte le dipendenze che iniziano con <dependentAssembly dependencyType="install" o <file name="app.config">. Il codice dovrebbe essere analogo al seguente: solo l'elemento <dsig:DigestValue> sarà diverso.
<dependency> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="ContosoExcelWorkbook.dll" size="12800"> <assemblyIdentity name="ContosoExcelWorkbook" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm= "urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm= "http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>i4e</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <dependency> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Office.Tools.Common.v4.0.Utilities.dll" size="30816"> <assemblyIdentity name="Microsoft.Office.Tools.Common.v4.0.Utilities" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>Ki0A9wOpes1YX5NaAvjmUeFSh0g=</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <dependency> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Office.Tools.Excel.v4.0.Utilities.dll" size="235104"> <assemblyIdentity name="Microsoft.Office.Tools.Excel.v4.0.Utilities" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>Te/...</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <file name=" ContosoExcelWorkbook.dll.config" size="77"> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>w7W...</dsig:DigestValue> </hash> </file>
Nel file ContosoInstaller.dll.manifest incollare le dipendenze di installazione alla fine della sezione delle dipendenze.
Nel file ContosoInstaller.dll.manifest rimuovere le dipendenze di installazione ContosoInstaller.dll e Microsoft.Office.Tools.Word.v4.0.Utilities.dll. Rimuovere inoltre qualsiasi dipendenza duplicata. Ad esempio, è possibile che siano state copiate più dipendenze di installazione per Microsoft.Office.Tools.Common.v4.0.Utilities.dll.
Nota
Se si distribuisce una soluzione Word a livello di documento, lasciare Microsoft.Office.Tools.Word.v4.0.Utilities.dll nel manifesto finale.
Aggiunta di punti di ingresso
Modificare il manifesto di applicazione affinché carichi gli assembly ContosoOutlookAddin e ContosoExcelWorkbook nello spazio dei nomi <vstav3>.
Per aggiungere al manifesto di applicazione i punti di ingresso nello spazio dei nomi vstav3
Nel file ContosoInstaller.dll.manifest, rimuovere il testo fra gli elementi <vstav3:entryPointsCollection> e </vstav3:entryPointsCollection>.
Dal file ContosoOutlookAddIn.dll.manifest, copiare il testo fra gli elementi <vstav3:entryPointsCollection> e </vstav3:entryPointsCollection>. Il codice dovrebbe essere analogo al seguente.
<vstav3:entryPoints> <vstav3:entryPoint class="ContosoOutlookAddIn.ThisAddIn"> <assemblyIdentity name="ContosoOutlookAddIn" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> </vstav3:entryPoint> </vstav3:entryPoints>
Nota
Se il componente aggiuntivo a livello di applicazione per Outlook utilizza un'area del modulo, il punto di ingresso di Outlook deve essere l'ultimo elencato nella sezione <vstav3:entryPoints>.
Nel file ContosoInstaller.dll.manifest, incollare il codice dopo l'elemento <vstav3:entryPointsCollection>.
Aggiungere l'attributo id all'elemento <vstav3:entryPoints> per distinguere questo punto di ingresso dagli altri.
<vstav3:entryPoints id="ContosoOutlook">
Dal file ContosoExcelWorkbook.dll.manifest, copiare il testo fra gli elementi <vstav3:entryPointsCollection> e </vstav3:entryPointsCollection>. Il codice dovrebbe essere simile al seguente codice.
<vstav3:entryPoints> <vstav3:entryPoint class="ContosoExcelWorkbook.ThisWorkbook"> <assemblyIdentity name="ContosoExcelWorkbook" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> </vstav3:entryPoint> <vstav3:entryPoint class="ContosoExcelWorkbook.Sheet1"> <assemblyIdentity name="ContosoExcelWorkbook" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> </vstav3:entryPoint> <vstav3:entryPoint class="ContosoExcelWorkbook.Sheet2"> <assemblyIdentity name="ContosoExcelWorkbook" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> </vstav3:entryPoint> <vstav3:entryPoint class="ContosoExcelWorkbook.Sheet3"> <assemblyIdentity name="ContosoExcelWorkbook" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> </vstav3:entryPoint> </vstav3:entryPoints>
Nel file ContosoInstaller.dll.manifest, incollare il codice dopo l'elemento <vstav3:entryPointsCollection>.
Aggiungere l'attributo id all'elemento <vstav3:entryPoints> per distinguere questo punto di ingresso dagli altri.
<vstav3:entryPoints id="ContosoExcel">
Aggiunta di assembly
Modificare il manifesto di applicazione affinché carichi gli assembly ContosoOutlookAddin e ContosoExcelWorkbook nello spazio dei nomi <vstov4>.
Per aggiungere gli assembly allo spazio dei nomi vstov4 nel manifesto di applicazione
Nel file ContosoInstaller.dll.manifest, rimuovere qualsiasi elemento di testo fra gli elementi <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> e </vstov4:customizations>.
Nel file ContosoOutlookAddIn.dll.manifest, copiare il testo fra gli elementi <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> e </vstov4:customizations>. Il codice dovrebbe essere analogo al seguente.
<vstov4:customization> <vstov4:appAddIn application="Outlook" loadBehavior="3" keyName="ContosoOutlookAddIn"> <vstov4:friendlyName> ContosoOutlookAddIn </vstov4:friendlyName> <vstov4:description> ContosoOutlookAddIn - Outlook add-in created with Visual Studio Tools for Office </vstov4:description> </vstov4:appAddIn> </vstov4:customization>
Nel file ContosoInstaller.dll.manifest, incollare il codice dopo l'elemento <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4">.
Aggiungere l'attributo id all'elemento <vstav3:customization> per distinguere questa personalizzazione dalle altre. Questo id è lo stesso id aggiunto all'elemento <vstav3:entryPoints> nella procedura precedente.
<vstov4:customization id="ContosoOutlook">
Dal file ContosoExcelWorkbook.dll.manifest, copiare il testo fra gli elementi <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> e </vstov4:customizations>. Il codice seguente è simile a quello che occorre: solo l'elemento <solutionId> sarà diverso.
<vstov4:customization> <vstov4:document solutionId="73e" /> </vstov4:customization>
Nel file ContosoInstaller.dll.manifest, incollare il codice dopo l'elemento <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4">.
Aggiungere l'attributo id all'elemento <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> per distinguere questa personalizzazione dalle altre. Questo id è lo stesso id aggiunto all'elemento <vstav3:entryPoints> nella procedura precedente.
<vstov4:customization id="ContosoExcel">
Modifica del progetto a Livello di documento
Per tutti i progetti a livello di documento in una distribuzione composta da più progetti, è necessario aggiungere l'id alla proprietà del documento personalizzata _AssemblyLocation. In questa sezione viene illustrato come aggiornare la proprietà _AssemblyLocation nel file di ContosoExcelWorkbook.xlsx e questo passaggio deve essere ripetuto per tutti i progetti a livello di documento.
Per modificare _AssemblyLocation in Excel o Word 2010
In Excel, scegliere la scheda Il file.
Scegliere il pulsante Informazioni.
Scegliere la freccia a discesa Proprietà quindi scegliere Proprietà avanzate.
Scegliere la scheda Personalizzata.
Nel riquadro Proprietà, scegliere _AssemblyLocation.
Nella casella di testo Valore, modificare il testo per rimuovere |vstolocal (se presente) e per aggiungere |id=ContosoInstaller.
Scegliere il pulsante OK.
Nuova firma dei manifesti
Firmare i manifesti di applicazione e di distribuzione con un certificato. Questa firma garantisce che i file non siano stati alterati.
Per firmare nuovamente i manifesti di applicazione e di distribuzione
Copiare il file di certificato ContosoInstaller_TemporaryKey.pfx dalla directory della soluzione %USERPROFILE%\Documents\Visual Studio 2012\Projects\ContosoInstaller\ContosoInstaller nella directory c:\publish\Application Files\ContosoInstaller_1_0_0_0.
Aprire il prompt dei comandi di Visual Studio.
Passare alla directory c:\publish\Application Files\ContosoInstaller_1_0_0_0.
Firmare il manifesto di applicazione modificato con il comando seguente:
mage -sign ContosoInstaller.dll.manifest -certfile ContosoInstaller_TemporaryKey.pfx
Verrà visualizzato il messaggio "ContosoInstaller.dll.manifest firmato correttamente".
Passare alla directory c:\publish.
Aggiornare e firmare il manifesto di distribuzione con il comando seguente:
mage -update ContosoInstaller.vsto -appmanifest "Application Files\ContosoInstaller_1_0_0_0\ContosoInstaller.dll.manifest" -certfile "Application Files\ContosoInstaller_1_0_0_0\ContosoInstaller_TemporaryKey.pfx"
Verrà visualizzato il messaggio "ContosoInstaller.vsto firmato correttamente".
Copiare il file ContosoInstaller.vsto nella directory c:\publish\Application Files\ContosoInstaller_1_0_0_0.
Test della distribuzione composta da più progetti
La procedura seguente garantisce che il manifesto installi il componente aggiuntivo di Outlook e la cartella di lavoro di Excel.
Per verificare la distribuzione composta da più progetti
Copiare la directory c:\publish in un computer di prova.
Eseguire il programma di installazione per installare la distribuzione composta da più progetti.
Verrà visualizzato il Programma di installazione della personalizzazione di Microsoft Office.
Scegliere Installa.
La finestra di dialogo Programma di installazione della personalizzazione di Microsoft Office mostrerà il messaggio seguente: "Personalizzazione di Microsoft Office installata correttamente".
Aprire Outlook per verificare il corretto funzionamento del componente aggiuntivo.
Aprire il file della cartella di lavoro di Excel per verificare il corretto funzionamento della personalizzazione a livello di documento.
Verificare che la distribuzione composta da più progetti presenti un'unica voce nell'elenco delle applicazioni installate.
In Installazione applicazioni di Windows XP o in Programmi e funzionalità di Windows Vista verrà visualizzato ContosoInstaller.
Pulizia della directory di pubblicazione
Mediante la procedura seguente è possibile rimuovere i file non necessari dalla directory di pubblicazione.
Per pulire la directory di pubblicazione
Rimuovere i file seguenti dalla directory c:\publish\Application Files\ContosoInstaller_1_0_0_0.
ContosoExcelWorkbook.dll.manifest
ContosoExcelWorkbook.vsto
ContosoInstaller.dll.deploy
ContosoInstaller.docx
ContosoInstaller_TemporaryKey.pfx
ContosoOutlookAddIn.dll.manifest
ContosoOutlookAddIn.vsto
Rimuovere i file seguenti dalla directory c:\publish.
ContosoExcelWorkbook.vsto
ContosoInstaller.docx
ContosoOutlookAddIn.vsto
Vedere anche
Attività
Procedura: ripetere la firma dei manifesti dell'applicazione e di distribuzione
Concetti
Protezione di applicazioni ClickOnce