为查找类型设置MetaProperty会导致MS Word崩溃

时间:2011-02-10 03:34:30

标签: sharepoint ms-word vsto

我们有一个用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

2 个答案:

答案 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中使用错误的列名和非字母数字名称。 你最终会用脚射击自己。

问候

马塞尔