如果你还需要随着解决方案安装一些附加的文件(例如GIF或包含附加文本的HTML文件),你可以把它们列举在元素的下面,使用元素分隔开。我只有出现在事务面板中的一张附加的GIF。 另一件阻碍了我几个小时的事情是清单中的元素的名称必须与你用于映射文档元素的XML大纲的名称相同。在例子中是ScheduleSmartDocument。 一旦你的智能文档与XML大纲一起标识了,你就能附加一个XML扩展包,把操作处理程序DLL与该文档关联。在Excel中,通过Data | XML | XML Expansion Packs打开对话框。你使用这个对话框先添加少量的扩展包(执行解决方案的manifest.xml文件),接着给文档附加一个扩展包。这个过程与用XML标记文档相似,只有智能文档开发者需要这样做——用户不需要这个对话框。换句话说,你使用Add-Ins 对话框(Tools | Templates and Add-Ins)的“XML扩展包”选项卡给文档附加了一个扩展包。 当用户打开拥有关联扩展包的文档的时候,Office将自动安装或更新他们的本地计算机上的扩展包文件。典型情况下扩展包安装在C:\Documents and Settings\All Users\Application Data\Microsoft\Schemas目录中,但是在未来的Office版本中可能改变这种情况。如果用户没有系统管理员权限,扩展包就安装在相应的每个用户的应用程序数据目录中(例如C:\Documents and Settings\Mike\Local Settings\Application Data\Microsoft\Schemas)。该XML扩展包中的用true标记的文件不会被下载并安装在用户的计算机上,而是每次使用时从服务器位置上直接打开。 如果你已经在本地计算机上开发了一个解决方案,你会发现在把它复制到布署服务器之后,Office仍然在你的开发计算机上使用的路径中查找清单文件。我也碰到了这个问题,最后发现Office把解决方案的路径加密存储在称为Solution URL的自定义文档属性中了。你把这个文件布署到服务器之后,需要把这个属性改变为服务器路径或使用“XML扩展包”对话框从布署服务器上附加该扩展包(这样将重新设置该属性的值)。接着你可以把拥有解决方案文件的服务器路径Excel工作薄保存回服务器。 为了作为用户测试这种情形,你应该关闭工作薄,选择Data | XML | XML Expansion Packs(Word中在Tools | Templates and Add-Ins下面),并从本地计算机上删除ScheduleSmartDocument扩展包文件。这使得你的开发计算机看起来像一台正常的用户计算机,即不知道扩展包的任何信息。下一步,从服务器上打开电子表格。这时候会出现一个对话框,询问你是否希望下载XML扩展包,你应该点击“是”。Office将下载扩展包清单中列举的文件并把它们安装在本地计算机上。 XML扩展包的特性比我们的简单的解决方案需要的特性多一些。实际上它们可以用于从服务器到客户端分发任何类型的文件,甚至于可以被链接成“清单集合”,这会引起Word或Excel引用几个链接的清单,就好像它们是一个大的清单一样。【未完待续】 原文标题:《Create Word and Excel Smart Documents with C++(www.cppentry.com) and XML》 原文作者:Mike Kelly 原文链接:http://msdn.microsoft.com/msdnmag/issues/03/12/SmartDocuments/default.aspx 代码下载: http://download.microsoft.com/download/a/5/f/a5f7e731-af88-476e-9d57-02b44945ed3a/SmartDocuments.exe