2012-11-14 45 views
2

我有一個用C#編寫的WinForms應用程序,它可以在Word中自動生成字母。該應用程序正常工作與Office 2010的安裝,但不安裝Office 2007這些機器具有客戶機,而不是供我收到以下錯誤消息 -無法加載程序集。 。 Interop.Word版本14.0.0.0

could not load file or assembly 'Microsoft.Office.Interop.Word version=14.0.0 

我懷疑我需要添加一個引用到舊Interop.Word版本例如版本= 12,但在可用於通過Visual Studio的引用列表中沒有這樣的選項。

難道我說得對,需要一個較舊的參考,如果是的話我在哪裏可以找到呢?

或者,如果有別的東西,我需要考慮,請告知。

+1

您可以從[here](http://www.microsoft.com/en-us/download/details.aspx?id=18346)下載它們 –

回答

0

是的,你應該refrence 2007年PIA的,因爲他們將工作對陣雙方Office 2007和Office 2010。一般來說,你應該引用的PIA對Office的最早的版本,你會支持。

您可以從here

下載Office 2007米的PIA從MSDN

當您安裝並在全局程序集 緩存註冊Office PIA的(無論是與Office或通過安裝可再發行組件包針對PIA的 ),綁定重定向程序集也僅在全局程序集緩存中安裝 。這些程序集有助於確保 正確版本的主互操作程序集在運行 時加載。例如,如果解決方案引用了Office 2007的主要互操作程序集,該Microsoft Office 2010版的同一主互操作程序集 的計算機上運行的綁定重定向程序集指示.NET框架運行時裝載到 主要互操作的Microsoft Office 2010版本 程序集。

+1

我已經得到了建議的下載並在客戶機,但它不能解決問題。我也試圖在我的開發機器上執行它,看它是否可以通過Visual Studio使我的舊程序集可用,但它不會運行,因爲我的機器上沒有安裝Office 2007(我有2010)。我究竟做錯了什麼? – PJW

6

請注意,.NET Framework 4.0支持嵌入式主互操作程序集(PIA)。 您可以通過將「嵌入互操作類型」設置爲「真」來在Microsoft.Office.Interop.Word參考中啓用它。
有關詳細信息,請參閱http://msdn.microsoft.com/en-us/library/dd997297(v=vs.100).aspx

另一種方式來支持多個Office版本是使用一個庫是這樣的: http://netoffice.codeplex.com/
庫通過COM使用後期綁定調用互操作,並且不需要使用主Interop大會的。

+1

將「嵌入互操作類型」設置爲True的選項的位置 – PJW

+0

在Visual Studio中,打開解決方案資源管理器(「查看」菜單 - >解決方案資源管理器),展開項目的引用節點。然後,右鍵單擊Microsoft.Office.Interop.Word參考並選擇「屬性」。您的屬性窗口將顯示'Embed Interop Types'選項。 – user1818624

相關問題