我們正在創建需要引用Office 2003或Office 2007 COM對象的Windows窗體應用程序(C#或VB.NET),具體取決於Office的版本安裝。處理這種情況並在運行時引用正確的COM對象的最佳方法是什麼?在Winforms應用程序中選擇Office 2003/2007 COM對象(正確的一個)
1
A
回答
1
除非您想使用Office 2007對象模型的任何新添加的對象和方法,否則生成引用Office 2003 PIA的方法很簡單,只需確保在目標系統上部署了正確版本的PIA :
解決此問題的另一種方法是刪除對後續PIA的依賴關係。由於Office的高度向後兼容性,您可以放心地假設如果您的加載項在Office 2003(使用Office 2003 PIA)上運行,那麼它也應該在Office 2007(使用Office 2007 PIA)上運行。
否則我建議你由安德魯白教堂下面的博客文章:Can you build one add-in for multiple versions of Office?(見大的警告,這是Microsoft未正式支持)。
另一個不需要PIA的選項(這使得部署更容易)將使用ComImport以及後期綁定。然而這比使用互操作程序集要慢,但是如果自動化代碼不在快速路徑上,這可能是一個很好的解決方案。你會找到一個解釋如何在同一博客文章中實現:Add-ins for Multiple Office Versions without PIAs
0
Office的主互操作程序集對此沒有幫助嗎?我不知道,因爲我不必認真使用它們,但我認爲它們會。
相關問題
- 1. 正確處理C#中的COM互操作對象,特別是MS Office應用程序
- 2. 在C#中正確設置COM對象的一個實例#
- 3. 在Winforms應用程序中篩選ReportViewer
- 4. '正確'終止WinForms應用程序
- 5. 在WinForms應用程序中引用log4net DLL的正確方法
- 6. 如何在Winforms應用程序中託管Microsoft Office文檔?
- 7. Node.js會是這個應用程序的正確選擇嗎?
- 8. Winforms C#應用程序崩潰在一個選擇組合框中
- 9. 在另一個COM對象內創建一個COM對象
- 10. WinForms和GTK#在一個應用程序
- 11. 鍵盤在一個WinForms應用程序
- 12. 如何在Winforms應用程序的配置中保存對象?
- 13. 在WPF和WinForms中創建應用程序對象的區別
- 14. jQuery的fetchJSON選擇正確的對象
- 15. 如何在OOB Silverlight 4.0應用程序中使用COM對象?
- 16. 在C#應用程序中使用COM對象DLL
- 17. 在MetroStyle應用程序中使用COM對象
- 18. 確定OfficeJS中的活動Office應用程序Office加載項
- 19. 將COM對象導入到COM +應用程序中,同時直接保留對COM對象的訪問權限?
- 20. C#.Net4:正確配置(動態)COM對象
- 21. 正確關閉C#excel COM對象
- 22. 在Office 2010中使用PHP的COM對象(Excel.Application)
- 23. 如何正確關閉C#中的winforms應用程序?
- 24. Flex應用程序Sqlite選擇語句返回[對象對象]
- 25. 在ASP.net應用程序中處理Com對象
- 26. 在WPF應用程序中嵌入Internet Explorer COM對象
- 27. 如何在UWP應用程序中創建COM對象? (C#)
- 28. 在C++ CLR控制檯應用程序中集成COM對象
- 29. 在應用程序中跟蹤COM對象錯誤
- 30. 在我的VUE應用程序中,「this」關鍵字確實選擇了一個DOM對象