HOW TO:將 Managed 程式碼擴充附加至文件 (2007 系統)
更新:2007 年 11 月
適用於 |
---|
本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。 專案類型
Microsoft Office 版本
如需詳細資訊,請參閱依應用程式和專案類型提供的功能。 |
您可以將 Visual Studio Tools for Office 自訂附加至現有的 Microsoft Office Word 2007 文件或 Microsoft Office Excel 2007 活頁簿。這些文件或活頁簿可以是 Visual Studio Tools for Office 所支援的任何檔案格式。如需詳細資訊,請參閱文件層級自訂的架構。
注意事項: |
---|
如果程式碼預期收到指定文件未擁有的控制項時,自訂就會失敗。 |
若要將 Visual Studio Tools for Office 自訂附加到 Word 或 Excel 文件,請使用 ServerDocument 類別的 AddCustomization 方法。由於 ServerDocument 類別主要是要在未安裝 Microsoft Office 的電腦上執行的,您可以在非 Visual Studio Tools for Office 專案架構的方案中 (例如主控台或 Windows Form 應用程式) 使用此方法。
若要將 Managed 程式碼擴充附加至文件
建立不會啟動 Word 或 Excel 的新專案,例如主控台應用程式或 Windows Form 專案。
在新專案中,將參考加入至下列組件。
Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll
Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll
將下列 Imports 或 using 陳述式加入至程式碼檔的最上方。
Imports Microsoft.VisualStudio.Tools.Applications Imports Microsoft.VisualStudio.Tools.Applications.Runtime
using Microsoft.VisualStudio.Tools.Applications; using Microsoft.VisualStudio.Tools.Applications.Runtime;
呼叫靜態 AddCustomization 方法。
下列程式碼範例會使用 AddCustomization 多載。這項多載採用文件的完整路徑以及 Uri,後者指定了您要附加至文件的自訂之部署資訊清單位置。此範例假定名為 WordDocument1.docx 的 Word 文件位於桌面上,且部署資訊清單位於名為 Publish 的資料夾中 (同樣位於桌面)。
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); }
請參閱
工作
HOW TO:撰寫使用 ServerDocument 類別兩個版本的程式碼
HOW TO:從文件移除 Managed 程式碼擴充 (2007 系統)
HOW TO:從文件移除 Managed 程式碼擴充 (2003 系統)
HOW TO:將 Managed 程式碼擴充附加至文件 (2003 系統)