圖5 應用程序所依賴的程序集
這意味著如果想讓我們的Office應用程序在目標機器上運行,目標機器上必需具有相應的程序集。這使得我們開發(fā)的Office應用程序,成為一頭不折不扣的大象!
但是在Visual Studio 2010中,我們可以通過將程序用到的程序集嵌入到應用程序中,為大象減減肥,從而實現(xiàn)No-PIA部署。在解決方案瀏覽器中,我們修改相應程序集的屬性,使得“Embed Interop Types”的值為True:
圖6 修改程序集的屬性
這樣,我們就可以將我們真正使用到的程序集嵌入到應用程序中,從而不會對Excel或者Word的整個互操作程序集產(chǎn)生依賴。當我們再次使用IL DASM查看我們重新編譯的OfficeDev.exe時,已經(jīng)找不到對Microsoft.Office.Interop.Excel和Microsoft.Office.Interop.Word的依賴了:
圖7 “大象瘦了!”
相反的,我們可以在IL DASM中看到,我們真正所使用到的Excel.Application, Excel.Range等類型已經(jīng)嵌入到應用程序中了:
圖8 嵌入到應用程序中的新類型
現(xiàn)在,我們就可以輕松地把應用程序部署到目標機器上,而不用去考慮目標機器上是否安裝了Office,Office的版本是多少等等繁瑣的問題。
“老婆快來看啊,有頭大象在跳舞耶!”
本文鏈接:http://m.95time.cn/computer/soft/2009/7139.asp
出處:藍色理想
責任編輯:bluehearts
上一頁 Visual Studio 2010特性支持Office [4] 下一頁
◎進入論壇計算機技術版塊參加討論
|