這兩天在做一個需要將wps文檔轉換成word文檔的程序,在調用wps的com組件時項目編譯是沒有問題的,但當運行的時候卻彈出了下面的錯誤提示:
從網上百度一番后,找到了正確的解決方法。
先從Com組件中添加引用:
選中引入的Com組件庫,右鍵-> 屬性:
將“嵌入互操作類型”改為 False 選項:
重新編譯,程序正常運行。
由此,讓我聯想到了在前不久一個朋友在使用Office組件用來轉換pdf文檔時,出現的 “無法嵌入互操作類型。。。”的問題,記得當時他的處理方法是按照網上說的教程,設置程序獲取最高的管理員權限,添加允許等操作來解決的,雖說最終程序是可以運行了,但配置起來還真是相當的麻煩呢。
而正確的方法應該是這樣的。調用Office文檔時:(以下圖片來源於網絡)
導入Com組件中的Office庫:
直接運行會報錯,“無法嵌入互操作類型”等等之類的錯誤:
打開 “屬性” 對話框:
將 “嵌入互操作類型” 設置為 False:
何為 “嵌入互操作類型” ???
1. ”嵌入互操作類型”中的嵌入就是引進、導入的意思,類似於c#中using,c中include的作用,目的是告訴編譯器是否要把互操作類型引入。
2. “互操作類型”實際是指一系列Com組件的程序集,是公共運行庫中庫文件,類似於編譯好的類,接口等。
3. “嵌入互操作類型”設定為true,實際上就是不引入互操作集(編譯時候放棄Com程序集),僅編譯用戶代碼的程序集。而設定為false的話,實際就是需要從互操作程序集中獲取 COM 類型的類型信息。
轉載請注明出處。