2011-06-21 56 views
14

我們創建了一個使用Office 2007(Excel 2007)從Excel工作表讀取數據的應用程序。然而。我注意到,當我想在安裝了Office 2003的系統上部署應用程序時,它會崩潰,因爲需要爲此版本的Office引用其他PIA(和其他dll)。使用Office自動化支持不同的Office版本

我是否需要編譯我的應用程序的不同版本才能支持不同版本的Office,或者是否存在針對此問題的更優雅的解決方案?

我使用Visual Studio 2010(C#)和.Net 4.0平臺。

回答

18

當您使用.NET 4時,您可以使用「嵌入式」PIA(又名「無PIA」)。更改Office引用上的選項,以便「嵌入Interop類型」爲True。

只要您只使用您部署的計算機上支持的Office功能,您應該沒問題。

這也意味着: - 您不必擔心PIA本身不存在在目標機器上 - 任何方法或性能,這是在原來的COM接口VARIANT類型的使用,現在代表dynamic在你的代碼中,這可以使你的生活更簡單

+0

這會讓我2年前的生活變得容易得多。在vs05中編寫vsto插件是一件麻煩事。 – asawyer

+0

這解決了我的問題。非常感謝你。 – Chris

0

您可以參考PIA的多個版本的辦公室,並找出運行時路由您的呼叫。

+0

這就是你不應該做的:http://blogs.msdn.com/b/andreww/archive/2007/06/15/can-you-build-one -add-in-for-multiple-versions-of-office.aspx – Andy

+0

這實際上是一個**好的主意。我也想這樣做,因爲在我的公司我們有安裝了不同Office版本的系統。我希望我的應用程序支持任何**版本。 – Bitterblue

相關問題