
图5 应用程序所依赖的程序集
这意味着如果想让我们的Office应用程序在目标机器上运行,目标机器上必需具有相应的程序集。这使得我们开发的Office应用程序,成为一头不折不扣的大象!
但是在Visual Studio 2010中,我们可以通过将程序用到的程序集嵌入到应用程序中,为大象减减肥,从而实现No-PIA部署。在解决方案浏览器中,我们修改相应程序集的属性,使得“Embed Interop Types”的值为True:

图6 修改程序集的属性
这样,我们就可以将我们真正使用到的程序集嵌入到应用程序中,从而不会对Excel或者Word的整个互操作程序集产生依赖。当我们再次使用IL DASM查看我们重新编译的OfficeDev.exe时,已经找不到对Microsoft.Office.Interop.Excel和Microsoft.Office.Interop.Word的依赖了:

图7 “大象瘦了!”
相反的,我们可以在IL DASM中看到,我们真正所使用到的Excel.Application, Excel.Range等类型已经嵌入到应用程序中了:

图8 嵌入到应用程序中的新类型
现在,我们就可以轻松地把应用程序部署到目标机器上,而不用去考虑目标机器上是否安装了Office,Office的版本是多少等等繁琐的问题。
“老婆快来看啊,有头大象在跳舞耶!”
本文链接:http://www.blueidea.com/computer/soft/2009/7139.asp
出处:蓝色理想
责任编辑:bluehearts
上一页 Visual Studio 2010特性支持Office [4] 下一页
◎进入论坛计算机技术版块参加讨论
|