excel:Exce l 2007新知:加载宏的改进

  今天我们发表两篇客串帖子中第 2篇来自Patrick SmithOffice 开发小组经理

  概述和背景

  代码在为Office成品编写加载宏里变得越来越流行了Visual Studio Tools for Office (VSTO)下个版本和Office 2007大概在同时间段上市VSTO下个版本增加了对在应用软件Software级创建加载宏支持自从Office 2003开始代码更好支持需求就已经清楚了但是运行代码时会有些挑战在这些挑战中有安全恢复管理和隔离这些挑战中大多数都是由于加载宏基于mscoree.dll而导致mscoree.dll是缺省VS.Net加载宏模板使用加载器

  有些工作区域是针对这些障碍例如创建个单独“shim”来代替mscoree.dll我们想要让Office 2007系统中这个过程变得更好我们正是那样做

  改进

  作为名开发者你现在可以使用VSTO新版本提供AddinLoader来设计你加载宏了在Office里运行代码时AddinLoader帮助克服那些历史挑战

  • 安全模式——Office系统2003产品架构里所有加载宏安全决定都是基于mscoree.dll它是不可签名该安全模式加载宏本身不可签名而Office产品也不会知道它只看mscoree.dll并且只看mscoree.dll所以当Office应用软件Software设置安全性为高时没有加载宏可以运行现在如果加载宏是基于AddinLoader那么Office 2007系统就能够区别.NET安全模式为加载宏决定安全性只有使用AddinLoader这才是可能

  • 恢复模式——Office 2003系统产品会自动禁用加载失败加载宏因此就可以避免该加载宏以后问题然而该加载宏实际上是被看作mscoree.dllmscoree.dll是被禁用加载宏而不是实际上导致该问题COM加载宏这就会防止任何基于mscoree.dll加载宏加载加载器本身被禁用了现在是加载宏而不是加载器具体有行为加载宏被禁用而不是加载器被禁用

  • 管理——当查看加载宏对话框时mscoree.dll就会被看作是加载宏名称而不是实际在mscoree.dll里运行COM加载宏旦你在运行多个加载宏就很难辨别哪个是哪个了现在显示是实际加载宏名称了

  • 运行时间隔离——mscoree.dll将所有加载宏加载到默认AppDo因此没有内存隔离加载宏可以相互步入影响加载宏的间共享对象AddinLoader将给每个加载宏使用独立AppDos因此实现了对该加载宏隔离

  需要什么

  为了利用这些新改进你将需要使用VSTO新版本(这里有篇对该版本技术概述)来创建你加载宏

  另外你需要确保在加载宏加载机器上有下述配置可用:

  • Common Language Runtime 2.0或以上版本

  • VSTO Runtime(来自VSTO新版本)

  • CAS政策给加载宏充分信任

  所有这些前提条件都可以从你在VSTO里创建加载宏安装工程里配置

Tags:  exce2003 excel2003 excel教程 excel

延伸阅读

最新评论

发表评论