Condividi tramite


Procedura dettagliata: copia di un documento nel computer dell'utente finale dopo un'installazione ClickOnce

Mediante un'azione post-distribuzione ClickOnce è possibile installare soluzioni Office a livello di documento e quindi copiare il documento nel computer dell'utente finale. A tale scopo occorre modificare il manifesto di applicazione e firmare nuovamente sia il manifesto di applicazione sia quello di distribuzione 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 2010 e Microsoft Office System 2007. 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 una soluzione Office da distribuire.

  • Implementazione di un'azione post-distribuzione che copia un documento nel desktop dell'utente finale.

  • Modifica del manifesto di applicazione della soluzione Office affinché esegua l'azione post-distribuzione.

  • Nuova firma dei manifesti di applicazione e di distribuzione.

Nota

Nel computer in uso è possibile che vengano visualizzati 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 2010 che include gli strumenti per sviluppatori di Microsoft Office. Per ulteriori informazioni, vedere [Configurazione di un computer per sviluppare soluzioni Office](bb398242\(v=vs.100\).md).
  • Excel 2007 o Excel 2010.

  • Computer di prova.

Creazione di un nuovo progetto

Anzitutto, creare un progetto cartella di lavoro di Excel.

Per creare un nuovo progetto Excel

  • Creare un progetto a livello di documento di Excel. Denominare il progetto ExcelWorkbook e salvarlo nella directory %USERPROFILE%\Documenti\Visual Studio 2010\Projects. Per ulteriori informazioni, vedere Procedura: creare progetti di Office in Visual Studio.

    La nuova cartella di lavoro di Excel verrà aperta nella finestra di progettazione di Visual Studio e il progetto ExcelWorkbook verrà aggiunto in Esplora soluzioni.

Creazione di un progetto Libreria di classi che definisce l'azione post-distribuzione

È necessario definire l'azione post-distribuzione in una libreria di classi separata. L'azione post-distribuzione copia il documento nel computer dell'utente finale.

Per creare una libreria di classi per l'azione post-distribuzione

  1. Scegliere Aggiungi dal menu File, quindi Nuovo progetto.

  2. Nel riquadro Modelli installati della finestra di dialogo Aggiungi nuovo progetto fare clic su Windows.

  3. Nel riquadro Modelli selezionare Libreria di classi.

  4. Digitare FileCopyPDA nel campo Nome, quindi fare clic su OK.

  5. In Esplora soluzioni, fare clic su FileCopyPDA.

  6. Scegliere Aggiungi riferimento dal menu Progetto.

  7. Nella finestra di dialogo Aggiungi riferimento della scheda .NET aggiungere i riferimenti seguenti:

    • Se il progetto Excel viene destinato a .NET Framework 3.5, aggiungere riferimenti a Microsoft.VisualStudio.Tools.Applications.Runtime.v10.0 e Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.

    • Se il progetto Excel viene destinato a .NET Framework 4, aggiungere riferimenti a Microsoft.VisualStudio.Tools.Applications.Runtime e Microsoft.VisualStudio.Tools.Applications.ServerDocument.

  8. Nel file di codice Class1, aggiungere all'inizio del file le istruzioni using o Imports seguenti.

    Imports Microsoft.VisualStudio.Tools.Applications.Deployment
    Imports Microsoft.VisualStudio.Tools.Applications
    
    using Microsoft.VisualStudio.Tools.Applications.Deployment;
    using Microsoft.VisualStudio.Tools.Applications;
    using System.IO;
    
  9. Rinominare la classe impostando il nome FileCopyPDA, quindi aggiungere il codice seguente nella classe FileCopyPDA. Questo codice indica che la classe FileCopyPDA eredita da IAddInPostDeploymentAction.

    Public Class FileCopyPDA
        Implements IAddInPostDeploymentAction
    
    public class FileCopyPDA : IAddInPostDeploymentAction
    
  10. Aggiungere il codice seguente per implementare il metodo IAddInPostDeploymentAction.Execute. Mediante il codice vengono effettuate le seguenti attività:

    • Copia del file della cartella di lavoro di Excel nel desktop dell'utente se la soluzione viene installata o aggiornata.

    • Modifica della proprietà _AssemblyLocation da un percorso relativo a un percorso completo per il manifesto di distribuzione. A tale scopo si utilizzano i metodi AddCustomization e RemoveCustomization.

    • Eliminazione del file se la soluzione viene disinstallata.

      Nota

      L'azione post-distribuzione viene eseguita durante il passaggio di disinstallazione per .NET Framework 3.5.

    Sub Execute(ByVal args As AddInPostDeploymentActionArgs) Implements IAddInPostDeploymentAction.Execute
        Dim dataDirectory As String = "Data\ExcelWorkbook.xlsx"
        Dim file As String = "ExcelWorkbook.xlsx"
        Dim sourcePath As String = args.AddInPath
        Dim deploymentManifestUri As Uri = args.ManifestLocation
        Dim destPath As String = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
        Dim sourceFile As String = System.IO.Path.Combine(sourcePath, dataDirectory)
        Dim destFile As String = System.IO.Path.Combine(destPath, file)
    
        Select Case args.InstallationStatus
            Case AddInInstallationStatus.InitialInstall, AddInInstallationStatus.Update
                System.IO.File.Copy(sourceFile, destFile)
                ServerDocument.RemoveCustomization(destFile)
                ServerDocument.AddCustomization(destFile, deploymentManifestUri)
                Exit Select
            Case AddInInstallationStatus.Uninstall
                If System.IO.File.Exists(destFile) Then
                    System.IO.File.Delete(destFile)
                End If
                Exit Select
        End Select
    End Sub
    
    public void Execute(AddInPostDeploymentActionArgs args) 
    {
        string dataDirectory = @"Data\ExcelWorkbook.xlsx";
        string file = @"ExcelWorkbook.xlsx";
        string sourcePath = args.AddInPath;
        Uri deploymentManifestUri = args.ManifestLocation;
        string destPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
        string sourceFile = System.IO.Path.Combine(sourcePath, dataDirectory);
        string destFile = System.IO.Path.Combine(destPath, file);
    
        switch (args.InstallationStatus)
        {
            case AddInInstallationStatus.InitialInstall:
            case AddInInstallationStatus.Update:
                File.Copy(sourceFile, destFile);
                ServerDocument.RemoveCustomization(destFile);
                ServerDocument.AddCustomization(destFile, deploymentManifestUri);
                break;
            case AddInInstallationStatus.Uninstall:
                if (File.Exists(destFile))
                {
                    File.Delete(destFile);
                }
                break;
        }
    }
    

Compilazione e pubblicazione della soluzione

Utilizzare Pubblicazione guidata o la pagina Progetto per compilare e pubblicare le soluzioni Office nel computer di sviluppo.

Per pubblicare il progetto Excel

  1. Fare clic con il pulsante destro del mouse sul progetto FileCopyPDA in Esplora soluzioni, quindi scegliere Compila.

  2. Fare clic con il pulsante destro del mouse sul progetto ExcelWorkbook in Esplora soluzioni, quindi scegliere Compila.

  3. Fare clic con il pulsante destro del mouse sul progetto ExcelWorkbook in Esplora soluzioni, quindi scegliere Aggiungi riferimento.

  4. Nella finestra di dialogo Aggiungi riferimento fare clic sulla scheda Progetti.

  5. Fare clic su FileCopyPDA e scegliere OK.

  6. Fare clic sul progetto ExcelWorkbook in Esplora soluzioni.

  7. Nel menu Progetto fare clic su Nuova cartella.

  8. Digitare Data, quindi premere Invio.

  9. In Esplora soluzioni fare clic sulla cartella Data.

  10. Scegliere Aggiungi elemento esistente dal menu Progetto.

  11. Nella finestra di dialogo Aggiungi elemento esistente individuare la directory di output del progetto ExcelWorkbook.

  12. Fare clic su ExcelWorkbook.xlsx, quindi scegliere Aggiungi.

  13. In Esplora soluzioni, fare clic su ExcelWorkbook.xlsx.

    Nota

    Se successivamente si modifica questo file, assicurarsi di aggiornarlo aggiungendone la versione più recente.

  14. Nel finestra Proprietà, impostare la proprietà Operazione di compilazione su Contenuto e la proprietà Copia nella directory di output su Copia se più recente.

  15. Pubblicare il progetto ExcelWorkbook nella cartella c:\publish. Per ulteriori informazioni, vedere Procedura: distribuire una soluzione Office utilizzando ClickOnce.

Modifica del manifesto di applicazione

Utilizzare l'editor XML in Visual Studio per modificare il manifesto di applicazione affinché esegua l'azione post-distribuzione Copia file. 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. 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.

Per aggiungere le dipendenze di installazione al manifesto di applicazione

  1. Aprire la directory c:\publish tramite Esplora risorse.

  2. Aprire la cartella Application Files, quindi aprire la cartella ExcelWorkbook_1_0_0_0.

  3. Aprire il file ExcelWorkbook.dll.manifest in un editor di testo.

  4. Aggiungere il codice seguente dopo l'elemento </vstav3:update>. Per l'attributo di classe dell'elemento <vstav3:entryPoint>, utilizzare la sintassi seguente: NomeSpazioDeiNomi.NomeClasse. In questo esempio, il nome dello spazio dei nomi è uguale a quello della classe. Pertanto, il nome del punto di ingresso risultante è FileCopyPDA.FileCopyPDA.

    <vstav3:postActions>
      <vstav3:postAction>
        <vstav3:entryPoint
          class="FileCopyPDA.FileCopyPDA">
          <assemblyIdentity
            name="FileCopyPDA"
            version="1.0.0.0"
            language="neutral"
            processorArchitecture="msil" />
        </vstav3:entryPoint>
        <vstav3:postActionData>
        </vstav3:postActionData>
      </vstav3:postAction>
    </vstav3:postActions>
    

Nuova firma dei manifesti

La procedura seguente consente di firmare il manifesto di applicazione e di aggiornare il manifesto di distribuzione. Questa procedura impedisce l'installazione di file alterati nei computer degli utenti finali.

Per firmare nuovamente i manifesti di applicazione e di distribuzione

  1. Copiare il file di certificato ExcelWorkbook_TemporaryKey.pfx dalla directory della soluzione %USERPROFILE%\Documenti\Visual Studio 2010\Projects\ExcelWorkbook\ExcelWorkbook nella directory c:\publish\Application Files\ExcelWorkbook_1_0_0_0.

  2. Aprire il prompt dei comandi di Visual Studio.

  3. Passare alla directory c:\publish\Application Files\ExcelWorkbook_1_0_0_0.

  4. Firmare il manifesto di applicazione modificato con il comando seguente:

    mage -sign ExcelWorkbook.dll.manifest -certfile ExcelWorkbook_TemporaryKey.pfx
    

    Verrà visualizzato il messaggio "ExcelWorkbook.dll.manifest firmato correttamente".

  5. Passare alla directory c:\publish.

  6. Aggiornare e firmare il manifesto di distribuzione con il comando seguente:

    mage -update ExcelWorkbook.vsto -appmanifest "Application Files\Ex
    celWorkbook_1_0_0_0\ExcelWorkbook.dll.manifest" -certfile "Application Files\ExcelWorkbook_1_0_0_0\ExcelWorkbook_TemporaryKey.pfx"
    

    Verrà visualizzato il messaggio "ExcelWorkbook.vsto firmato correttamente".

  7. Copiare il file ExcelWorkbook.vsto nella directory c:\publish\Application Files\ExcelWorkbook_1_0_0_0.

Test dell'azione post-distribuzione

La procedura seguente garantisce che il manifesto aggiornato installi la cartella di lavoro di Excel e copi la cartella di lavoro nel desktop dell'utente finale.

Per verificare l'azione post-distribuzione

  1. Copiare la directory c:\publish in un computer di prova.

  2. Eseguire il programma Setup.exe. In alternativa, se i prerequisiti sono già installati nel computer di prova, fare doppio clic sul manifesto di distribuzione ExcelWorkbook.vsto.

    Verrà visualizzato il Programma di installazione della personalizzazione di Microsoft Office.

  3. Scegliere Installa.

    La finestra di dialogo Programma di installazione della personalizzazione di Microsoft Office mostrerà il messaggio seguente: "Personalizzazione di Microsoft Office installata correttamente". La cartella di lavoro di Excel viene copiata nel desktop dell'utente finale.

  4. Aprire il file ExcelWorkbook.xlsx dal desktop.

Vedere anche

Attività

Procedura: ripetere la firma dei manifesti dell'applicazione e di distribuzione

Concetti

Distribuzione avanzata di soluzioni Office

Altre risorse

Distribuzione di soluzioni Office

Cronologia delle modifiche

Data

Cronologia

Motivo

Settembre 2010

Modificato %USERPROFILE%\Documents\Visual Studio 10\Projects in %USERPROFILE%\Documents\Visual Studio 2010\Projects.

Correzione di bug nel contenuto.