Формат идентификатора поля поиска Sharepoint 2010

#visual-studio-2010 #sharepoint-2010 #lookup

#visual-studio-2010 #sharepoint-2010 #поиск

Вопрос:

Я новичок в Sharepoint 2010, и в настоящее время я пытаюсь создать поле поиска, добавить его в тип контента и добавить в список с помощью Visual Studio 2010 SharePoint project. Но у меня возникла какая-то странная проблема.

Я определил поле поиска следующим образом:

   <Field ID="{2A5567B7-1175-4E26-A4ED-382E4744D17A}" Type="Lookup" Name="SomeLookupField" List="Lists/SomeList" ShowField="ItemName" DisplayName="Some Field" Group="Custom Group" ReadOnly="TRUE" />
 

Затем я добавил его в ContentType через элемент FieldRef. И, наконец, определение списка содержит тот же элемент в Schema.xml

Он работает нормально, пока я не попытаюсь сохранить свой сайт в качестве шаблона. Sharepoint не удается экспортировать сайт и отображается ошибка:

Майкрософт.SharePoint.Исключение: ошибка при экспорте поля сайта с именем «SomeLookupField». в Microsoft.SharePoint.SPSolutionExporter.ExportFields(поля SPFieldCollection, строковое имя раздела)

Это вызвано ошибкой:

SPSolutionExporter: Система.Исключение FormatException: идентификатор Guid должен содержать 32 цифры с 4 тире (xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx). в System.Guid..ctor(строка g) в Microsoft.SharePoint.SPSolutionExporter.GetFieldSchemaXml(поле SPField, SPWeb web, логическое значение isFieldFromWeb, логическое значение removeSealedAttribute) в Microsoft.SharePoint.SPSolutionExporter.Экспортное поле (поле SPField, веб-страница SPWeb)

Поиграв, я обнаружил, что идентификатор поля поиска не должен содержать фигурных скобок и выглядеть следующим образом:

 <Field ID="2A5567B7-1175-4E26-A4ED-382E4744D17A"
 

После того, как я изменил его, экспорт начал работать нормально. Но повторное развертывание из Visual Studio теперь не выполняется, поскольку оно не удаляет поле при удалении старой функции и завершается ошибкой при активации обновленной функции:

Произошла ошибка на этапе развертывания «Активировать функции»: поле с идентификатором {2A5567B7-1175-4E26-A4ED-382E4744D17A} определено в функции {235313d2-4091-4655- 8b35-70b3ad31b9f4} был найден в текущем семействе сайтов или на дочернем сайте.

Интересно, что может быть не так с моим определением поля поиска? Каков допустимый формат определения полей поиска?

Ответ №1:

Найдено решение. Для определения столбца поиска должен быть установлен атрибут перезаписи, равный «TRUE». В блоге об этом здесь

Комментарии:

1. Спасибо, столкнувшись с точно такой же проблемой, вы экономите время 🙂