轉: [開發筆記]-「在引用COM組件時,出現了沒法嵌入互操做類型。。。」的錯誤

轉自:  https://www.cnblogs.com/babycool/p/3838204.html

隨筆 - 113  文章 - 0  評論 - 410

 

 

 

  這兩天在作一個須要將wps文檔轉換成word文檔的程序,在調用wps的com組件時項目編譯是沒有問題的,但當運行的時候卻彈出了下面的錯誤提示:html

從網上百度一番後,找到了正確的解決方法。 c#

  先從Com組件中添加引用:網絡

  選中引入的Com組件庫,右鍵-> 屬性:spa

  將「嵌入互操做類型」改成 False 選項:htm

 

從新編譯,程序正常運行。blog

 

  由此,讓我聯想到了在前不久一個朋友在使用Office組件用來轉換pdf文檔時,出現的 「沒法嵌入互操做類型。。。」的問題,記得當時他的處理方法是按照網上說的教程,設置程序獲取最高的管理員權限,添加容許等操做來解決的,雖然說最終程序是能夠運行了,但配置起來還真是至關的麻煩呢。教程

  而正確的方法應該是這樣的。調用Office文檔時:(如下圖片來源於網絡)接口

  導入Com組件中的Office庫:圖片

 

  直接運行會報錯,「沒法嵌入互操做類型」等等之類的錯誤:開發

  打開 「屬性」 對話框:

  將 「嵌入互操做類型」 設置爲 False:

 

  何爲 「嵌入互操做類型」 ???

  1. 」嵌入互操做類型」中的嵌入就是引進、導入的意思,相似於c#中using,c中include的做用,目的是告訴編譯器是否要把互操做類型引入。

  2. 「互操做類型」實際是指一系列Com組件的程序集,是公共運行庫中庫文件,相似於編譯好的類,接口等。

  3. 「嵌入互操做類型」設定爲true,實際上就是不引入互操做集(編譯時候放棄Com程序集),僅編譯用戶代碼的程序集。而設定爲false的話,實際就是須要從互操做程序集中獲取 COM 類型的類型信息。

 

參考:VS2010中出現沒法嵌入互操做類型

轉載請註明出處。

相關文章
相關標籤/搜索