Procedura: associare estensioni di codice gestito a documenti
È possibile associare un assembly di personalizzazione a un documento di Microsoft Office Word o a una cartella di lavoro di Microsoft Office Excel esistenti. Il documento o la cartella di lavoro può essere in qualsiasi formato di file supportato dai progetti Microsoft Office e dagli strumenti di sviluppo in Visual Studio 2010. Per ulteriori informazioni, vedere Architettura delle personalizzazioni a livello di documento.
Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento per Excel 2007, Excel 2010, Word 2007 e Word 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.
Per associare una personalizzazione a un documento di Word o Excel, utilizzare il metodo AddCustomization della classe ServerDocument. Poiché la classe ServerDocument è progettata per essere eseguita in un computer in cui non è installato Microsoft Office, è possibile utilizzare questo metodo nelle soluzioni non direttamente correlate allo sviluppo Microsoft Office, ad esempio un'applicazione console o Windows Form.
Nota
Non sarà possibile caricare la personalizzazione se il codice prevede la presenza di controlli di cui il documento specificato è privo.
Per una dimostrazione video correlata, vedere la procedura relativa all'associazione o alla dissociazione di un assembly VSTO da un documento di Word.
Per collegare le estensioni di codice gestito a un documento
In un progetto che non richiede Microsoft Office, ad esempio un'applicazione console o un progetto Windows Form, aggiungere un riferimento a uno degli assembly seguenti:
Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll e Microsoft.VisualStudio.Tools.Applications.Runtime.dll (se il progetto è destinato a .NET Framework 4).
oppure
Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll e Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (se il progetto è destinato a .NET Framework 3.5).
Aggiungere l'istruzione Imports o using seguente all'inizio del file di codice.
Imports Microsoft.VisualStudio.Tools.Applications Imports Microsoft.VisualStudio.Tools.Applications.Runtime
using Microsoft.VisualStudio.Tools.Applications; using Microsoft.VisualStudio.Tools.Applications.Runtime;
Chiamare il metodo statico AddCustomization.
Nell'esempio di codice riportato di seguito viene utilizzato l'overload AddCustomization, il quale assume il percorso completo del documento e un oggetto Uri che specifica il percorso del manifesto di distribuzione per la personalizzazione che si desidera associare al documento. In questo esempio si presuppone che un documento di Word denominato WordDocument1.docx si trovi sul desktop e che il manifesto di distribuzione sia situato in una cartella denominata Publish anch'essa sul desktop.
Dim documentPath As String = System.Environment.GetFolderPath( _ Environment.SpecialFolder.Desktop) + "\WordDocument1.docx" Dim runtimeVersion As Integer = 0 Try runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath) ' Make sure that this document does not yet have any Visual Studio Tools ' for Office customizations. If runtimeVersion = 0 Then Dim deployManifestPath As String = System.Environment.GetFolderPath( _ Environment.SpecialFolder.Desktop) & "\Publish\WordDocument1.vsto" Dim deploymentManifestUri As New Uri(deployManifestPath) ServerDocument.AddCustomization(documentPath, deploymentManifestUri) System.Windows.Forms.MessageBox.Show("The document was successfully customized.") Else System.Windows.Forms.MessageBox.Show("The document is already customized.") End If Catch ex As FileNotFoundException System.Windows.Forms.MessageBox.Show("The specified document does not exist.") Catch ex As DocumentNotCustomizedException System.Windows.Forms.MessageBox.Show("The document could not be customized." & _ vbLf & ex.Message) End Try
string documentPath = System.Environment.GetFolderPath( Environment.SpecialFolder.Desktop) + @"\WordDocument1.docx"; int runtimeVersion = 0; try { runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath); // Make sure that this document does not yet have any Visual Studio Tools // for Office customizations. if (runtimeVersion == 0) { string deployManifestPath = System.Environment.GetFolderPath( Environment.SpecialFolder.Desktop) + @"\Publish\WordDocument1.vsto"; Uri deploymentManifestUri = new Uri(deployManifestPath); ServerDocument.AddCustomization(documentPath, deploymentManifestUri); System.Windows.Forms.MessageBox.Show("The document was successfully customized."); } else { System.Windows.Forms.MessageBox.Show("The document is already customized."); } } catch (FileNotFoundException) { System.Windows.Forms.MessageBox.Show("The specified document does not exist."); } catch (DocumentNotCustomizedException ex) { System.Windows.Forms.MessageBox.Show("The document could not be customized.\n" + ex.Message); }
Compilare il progetto ed eseguire l'applicazione nel computer in cui si desidera associare la personalizzazione. Nel computer deve essere installato Visual Studio 2010 Tools per Office Runtime.
Vedere anche
Attività
Procedura: rimuovere estensioni di codice gestito dai documenti
Concetti
Gestione dei documenti di un server utilizzando la classe ServerDocument
Manifesti dell'applicazione e di distribuzione nelle soluzioni di Office