我们有一个用VB.Net 3.5编写并在MS Word 2010中运行的VSTO加载项。在这个VSTO加载项中,我们设置了许多从文档ContentTypeProperties集合返回的SharePoint(2010)元属性。 / p>
当我们设置类型为msoMetaPropertyTypeLookup的MetaData项的Value属性时,有时(非常规则,但不是所有时间)它会导致Word崩溃。显然有一个尝试捕获值的设置,但没有异常被它捕获 - Word就死了。有关Word错误的详细信息如下,但我怀疑它对任何人都没有多大用处。对于text类型的字段,设置它们的值没有问题。
如果有人能够指出我们正确的方向,始终能够以不会杀死单词的方式设置查找元数据属性的值,那将非常感激!
此外,我们有一个MetaData属性也是一个查找类型,但只是访问它的任何属性(如值,名称,类型)会导致以下异常 “未找到元素。(HRESULT异常:0x80070490)”
似乎不会导致此异常的唯一属性是Id属性。我能看到的唯一区别是字段的名称中有正斜杠(“/”)。字段名称中的“/”无效吗?
默认DIP可以设置所有值而不会出现问题。只是当我们尝试在代码中执行时遇到问题。
Problem signature:
Problem Event Name: APPCRASH
Application Name: WINWORD.EXE
Application Version: 14.0.5123.5000
Application Timestamp: 4c646b38
Fault Module Name: StackHash_6608
Fault Module Version: 6.1.7600.16695
Fault Module Timestamp: 4cc7ab44
Exception Code: c0000374
Exception Offset: 000c35e3
OS Version: 6.1.7600.2.0.0.256.48
Locale ID: 5129
Additional Information 1: 6608
Additional Information 2: 66081020834161d0adf96c6191f1a84c
Additional Information 3: fdd5
Additional Information 4: fdd5bad4f069a755d9154e340782caad
答案 0 :(得分:2)
我有同样的问题,我在 ContentTypeProperties的 Schema Xml中发现,字段的内部名称最后为0,如CustomSiteColumnName0
但是字段的名称确实如此不。这是因为内容类型的自定义父内容类型也有一些网站列,但这些列在SchemaXml中的内部名称很好。
因此,从父内容类型中删除列后,幸运的是我根本没有使用它们,所有内容都开始在基于自定义内容类型的新文档中正常工作。
答案 1 :(得分:0)
我在VBA中尝试了相同的操作,只是从sharepoint托管文档枚举属性时遇到了同样的错误。
Sub GetDocProps() “ 'GetDocProps宏 “ “
Dim i As Long Dim prop作为Office.MetaProperty 昏暗的道具作为Office.MetaProperties
设置props = ActiveDocument.ContentTypeProperties i = 1 为每个道具在道具 'Debug.Print i& “。输入:”& prop.Type& “ID:”& prop.ID& “姓名:”& prop.Name& “价值:”& prop.Value Debug.Print i& “” &安培; “ID:”& prop.ID& “姓名:”& prop.Name i = i + 1 下一个道具 结束子
它在携带ID Intern_x002f_extern并且列名为“Internal ot External Created”的第9个属性上崩溃 还存在名称为“Afzender / Geadresseerde”的列
这是一个网站集,由一些外部顾问构建。 所以我认为这些顾问没有遵循规则,在列名中使用非法字符。
违反这些规则会产生各种令人讨厌的副作用。
请注意在sharepoint中使用错误的列名和非字母数字名称。 你最终会用脚射击自己。
问候
马塞尔