(原文 - Harry Miller:http://blogs.msdn.com/vsto/archive/2008/07/18/removing-customization-code-before-e-mailing-a-document.aspx)
为一个 Word / Excel 文档创建 VSTO 自定义代码之后,这个文档的后续拷贝也会和这些代码关联,哪怕你“另存为”的时候换一个文档名字,关联依然存在。每次文档被打开的时候,它就会试图去寻找 关联的 VSTO 代码并且开始运行。问题来了:如果我们需要把文档发送给外部人员呢(比如客户、供应商)?他们没有权限访问到我们的内部网络,文档也就找不到关联的代码, 于是一个讨厌的错误对话框就会跳出来,告诉一头雾水的用户“无法找到或加载自定义程序集”,对于普通 Office 用户来说,这简直就是天书一样的信息。
所以有时候我们需要在向外派发文档之前移除文档和 VSTO 代码的关联。
一个方法是手工在文档的“属性-高级属性-自定义”项目中删除“_AssemblyName”和“_AssemblyLocation”属性。
另外一种方法是通过编程,使用“ServerDocument.RemoveCustomization()”方法,可以解除文档和代码的关联。VSTO 文档中的示例程序包含了相关的代码可以参考。
相关资源:
ServerDocument.RemoveCustomization 方法(2007 Office 系统)
ServerDocument.RemoveCustomization 方法(2003 Office 系统)
ServerDocument 示例代码
使用 ServerDocument 类在服务器上管理文档