Condividi tramite


Procedura dettagliata: distribuzione di un documento e di un assembly in una cartella di rete (System 2003)

Aggiornamento: novembre 2007

Si applica a

Le informazioni contenute in questo argomento riguardano solo i progetti Visual Studio Tools per Office e le versioni di Microsoft Office specificati.

Tipo di progetto

  • Progetti a livello di documento

Versione Microsoft Office

  • Microsoft Office 2003

Per ulteriori informazioni, vedere la classe Funzionalità disponibili in base ai tipi di progetto e applicazione.

In questa procedura dettagliata viene illustrato come distribuire una personalizzazione a livello di documento in modo che il documento e l'assembly si trovino in una cartella su un computer di rete. Questo tipo di distribuzione è noto come modello di distribuzione rete/rete.

Per ulteriori informazioni sui diversi modi in cui è possibile distribuire una soluzione, vedere Modelli di distribuzione (2003 System). Per ulteriori informazioni sulle personalizzazioni a livello di documento, vedere Architettura delle personalizzazioni a livello di documento.

In questa procedura dettagliata vengono illustrate le attività seguenti:

  • Modifica del manifesto di applicazione incorporato in un documento in modo che punti all'assembly.

  • Concessione dell'attendibilità totale a un assembly di una soluzione Visual Studio Tools per Office contenuto in una cartella di rete.

Prerequisiti

Per completare questa procedura dettagliata, è necessario disporre dei seguenti componenti:

  • Visual Studio Tools per Office°(componente facoltativo di Visual Studio 2008 Professional e Visual Studio Team System).

  • Microsoft Office Word 2003 o Microsoft Office Excel 2003.

    Nota:

    In questa procedura dettagliata si presuppone che venga distribuita una soluzione Word. Se si desidera eseguire la procedura dettagliata con una soluzione Excel, sostituire il nome del progetto Word con il nome del progetto Excel in tutti gli esempi di codice.

  • Accesso a un computer di rete per la distribuzione.

  • Privilegi di amministratore sul computer di sviluppo per poter impostare i criteri di sicurezza.

Creazione di una soluzione da distribuire

Il primo passaggio consiste nel creare una soluzione Visual Studio Tools per Office di base da distribuire. Se si dispone già di una soluzione da distribuire, è possibile ignorare questa sezione e procedere alla sezione "Modifica del manifesto di applicazione incorporato".

Per creare una soluzione da distribuire

  1. Creare un progetto Documento di Word con il nome WordDeployment, utilizzando il modello di progetto per Office 2003.

    Nella procedura guidata, scegliere Crea un nuovo documento. Per ulteriori informazioni, vedere la classe Procedura: creare progetti Visual Studio Tools per Office.

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul file di codice ThisDocument, quindi scegliere Visualizza codice.

  3. Aggiungere il codice seguente al gestore eventi ThisDocument_Startup. Tale codice visualizza un messaggio all'apertura del documento grazie al quale è possibile verificare in modo più semplice se la soluzione è stata distribuita correttamente.

    MessageBox.Show("The deployment is successful")
    
    MessageBox.Show("The deployment is successful");
    

    Per ulteriori informazioni sull'evento Startup, vedere Eventi di progetti Visual Studio Tools per Office.

  4. Premere F5 per compilare ed eseguire il progetto. Verificare che il messaggio venga visualizzato.

  5. Uscire da Word.

  6. Chiudere la soluzione in Visual Studio.

    Assicurarsi che il documento non sia aperto in un'istanza di Word o in Progettazione progetti. Se il documento è aperto, il tentativo di accedervi successivamente tramite ServerDocument avrà esito negativo.

Modifica del manifesto di applicazione incorporato

Durante la compilazione della soluzione, si presuppone che l'assembly si trovi nella stessa cartella del documento. La posizione dell'assembly viene memorizzata in un manifesto di applicazione incorporato nel documento. Se il documento e l'assembly vengono distribuiti in cartelle differenti, è necessario modificare il manifesto di applicazione incorporato in modo da specificare il nuovo percorso dell'assembly.

Nei passaggi seguenti verrà utilizzata la classe ServerDocument per modificare il manifesto di applicazione incorporato nel documento in modo che punti alla nuova posizione dell'assembly di personalizzazione. Il codice in cui viene utilizzato l'oggetto ServerDocument per modificare il manifesto dell'applicazione incorporato deve trovarsi all'esterno dell'assembly del progetto Visual Studio Tools per Office associato al documento distribuito.

Per modificare il manifesto di applicazione incorporato

  1. Creare un nuovo progetto Applicazione console. Per ulteriori informazioni, vedere Procedura: creare soluzioni e progetti.

  2. Aggiungere un riferimento all'assembly Microsoft.VisualStudio.Tools.Applications.Runtime.dll nel nuovo progetto.

  3. Aggiungere l'istruzione using (C#) o Imports (Visual Basic) seguente all'inizio del file di codice Program.cs o Module1.vb.

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  4. Aggiungere il codice seguente nel metodo Main per aggiornare il manifesto di applicazione incorporato. Sostituirefull document path con il percorso completo del documento nella posizione di compilazione nel computer di sviluppo, ad esempio cartella progetto\bin\debug\WordDeployment.doc. Sostituire full assembly path con il percorso completo dell'assembly nella cartella di rete in cui verrà distribuito, ad esempio \\DeploymentServer\DeploymentFolder\WordDeployment.dll.

    Dim sd As ServerDocument = Nothing
    Try
        sd = New ServerDocument("full document path")
        sd.AppManifest.Dependency.AssemblyPath = _
            "full assembly path"
        sd.Save()
    Finally
        If Not sd Is Nothing Then
            sd.Close()
        End If
    End Try
    
    ServerDocument sd = null;
    try
    {
        sd = new ServerDocument(@"full document path");
        sd.AppManifest.Dependency.AssemblyPath = 
            @"full assembly path";
        sd.Save();
    }
    finally
    {
        if (sd != null)
        {
            sd.Close();
        }
    }
    
  5. Compilare ed eseguire il progetto. L'applicazione console aggiornerà il percorso dell'assembly nel manifesto di applicazione incorporato e quindi eseguirà la chiusura.

  6. Chiudere il progetto Applicazione console.

Distribuzione della soluzione

Ora che i percorsi sono corretti, è possibile distribuire il documento e l'assembly nella stessa cartella nel computer di rete.

Per distribuire la soluzione

  1. Creare una cartella denominata DeploymentFolder su un computer di rete e condividere la cartella con se stessi. Se, ad esempio, il computer di rete è denominato DeploymentServer, la nuova condivisione di rete si chiamerà \\DeploymentServer\DeploymentFolder. Assicurarsi che la condivisione di rete abbia lo stesso nome specificato nel segnaposto full assembly path durante la modifica del manifesto dell'applicazione incorporato nei passaggi precedenti.

  2. Copiare il documento e l'assembly dalla cartella dell'output di compilazione, generalmente cartella progetto\bin\debug o cartella progetto\bin\release, nella condivisione di rete \\DeploymentServer\DeploymentFolder.

  3. Aprire il documento nella condivisione di rete \\DeploymentServer\DeploymentFolder. Verrà visualizzato un messaggio di errore per segnalare che non è stato possibile trovare o caricare l'assembly di personalizzazione. Ciò si verifica in quanto non è stata concessa l'attendibilità totale al documento e all'assembly nella cartella di rete.

  4. Scegliere OK e quindi chiudere il documento.

Impostazione dei criteri di sicurezza

Per consentire l'esecuzione della soluzione, è necessario concedere l'attendibilità totale all'assembly e al documento nei criteri di sicurezza di .NET Framework 2.0. In questa procedura viene utilizzato lo strumento Criteri di sicurezza dell'accesso di codice (Caspol.exe) per concedere l'attendibilità totale all'assembly. Per ulteriori informazioni sull'utilizzo di Caspol.exe, vedere Strumento criteri di protezione dall'accesso di codice (Caspol.exe) e Configurazione dei criteri di protezione tramite lo Strumento criteri di protezione dall'accesso di codice (Caspol.exe).

Nota sulla sicurezza:

Per completare questa procedura dettagliata è possibile eseguire alcuni passaggi di base allo scopo di impostare un criterio di sicurezza basato su un'evidenza URL. Non utilizzare questi passaggi per concedere l'attendibilità agli assembly in una soluzione reale se non si è certi che la posizione sia sicura e protetta. È inoltre consigliabile basare la protezione di una soluzione reale su un'evidenza maggiore rispetto all'URL dell'assembly. Per ulteriori informazioni, vedere la classe Requisiti di sicurezza per l'esecuzione delle soluzioni Office (System 2003).

Per concedere l'attendibilità totale all'assembly e al documento

  1. Al prompt dei comandi, digitare il comando seguente per creare un nuovo gruppo di codice in grado di concedere l'attendibilità totale all'assembly.

    %windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag LocalIntranet_Zone -url "full assembly path" FullTrust -n "Test_Deployment_Assembly"
    

    Sostituire full assembly path con il percorso completo dell'assembly nella cartella di rete, ad esempio \\DeploymentServer\DeploymentFolder\WordDeployment.dll.

    Il parametro -n specifica un nome per il nuovo gruppo di codice. Tale parametro non è obbligatorio, ma la specifica di un'etichetta semplifica la successiva identificazione e rimozione del nuovo gruppo di codice al termine di questa procedura dettagliata.

  2. Digitare sì quando viene richiesto di confermare l'esecuzione dell'operazione e premere INVIO.

  3. Digitare il comando seguente per creare un nuovo gruppo di codice in grado di concedere l'attendibilità totale al documento e quindi premere INVIO. È necessario concedere l'attendibilità totale al documento in quanto si procederà all'apertura di quest'ultimo in qualità di utente finale dalla cartella di rete. I documenti non richiedono l'attendibilità totale se si trovano sul computer dell'utente finale.

    %windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag LocalIntranet_Zone -url "full document path" FullTrust -n "Test_Deployment_Document"
    

    Sostituire full document path con il percorso completo del documento nella cartella di rete, ad esempio \\DeploymentServer\DeploymentFolder\WordDeployment.doc.

    Il parametro -n specifica un nome per il nuovo gruppo di codice. Tale parametro non è obbligatorio, ma la specifica di un'etichetta semplifica la successiva identificazione e rimozione del nuovo gruppo di codice al termine di questa procedura dettagliata.

  4. Digitare sì quando viene richiesto di confermare l'esecuzione dell'operazione e premere INVIO.

  5. Sul computer di distribuzione aprire il documento nella cartella di rete \\DeploymentServer\DeploymentFolder e verificare che il messaggio venga visualizzato.

  6. Salvare il documento in una cartella sul computer di sviluppo e quindi chiuderlo.

  7. Aprire il documento sul computer di sviluppo e verificare che il messaggio venga visualizzato.

    Questa operazione è possibile in quanto il manifesto di applicazione incorporato include il percorso completo dell'assembly sul computer di rete. Se il percorso dell'assembly nel manifesto di applicazione incorporato non è stato modificato, la soluzione verrà eseguita solo se il documento viene aperto dalla cartella di rete.

Passaggi successivi

È anche possibile distribuire il documento e l'assembly nelle cartelle locali nonché distribuire solo l'assembly in una cartella di rete. Per ulteriori informazioni, vedere le procedure dettagliate seguenti:

Vedere anche

Attività

Procedura dettagliata: distribuzione di un documento e di un assembly in una cartella locale (System 2003)

Procedura dettagliata: distribuzione di un documento e un assembly in cartelle locali diverse (System 2003)

Procedura dettagliata: distribuzione di un documento in una cartella locale e di un assembly in una cartella di rete (System 2003)

Procedura dettagliata: distribuzione di una personalizzazione a livello di documento tramite un manifesto di distribuzione (System 2003)

Procedura dettagliata: distribuzione di una personalizzazione a livello di documento tramite un file di Windows Installer (System 2003)

Concetti

Distribuzione di soluzioni Office (System 2003)

Distribuzione delle personalizzazioni a livello di documento (2003 System)

Modelli di distribuzione (2003 System)