Хитрость заключается в добавлении столбцов только с использованием XML-схемы вместо использования внешнего интерфейса.
Обычно я делаю это, используя решение / функцию, содержащую все определения полей и типы контента.
Поскольку у вас уже есть добавленные типы контента, вам, возможно, потребуется использовать такой инструмент, как Менеджер SharePoint , чтобы просмотреть схему xml и представить новую. Это дает больше контроля над точным определением для любых полей.
Никогда не может быть двух полей с одинаковым внутренним именем. У нас возникла проблема, когда поля были определены на сайте с помощью /_layouts/settings.aspx, а также на уровне списка. Насколько я могу судить, когда сайт восстанавливается, он пытается добавить любые поля из уровня списка или дочернего сайта в базовый сайт (предупреждение: мнение формируется только путем просмотра ошибок журнала и проб и ошибок, а не фактических фактов), и это там, где, кажется, не получается. Убедиться в том, что все поля определены согласованно, с помощью XML-схемы (проще всего это сделать с помощью функции, определяющей типы контента), может помочь сгладить проблемы.
То есть все поля с одинаковым именем имеют одинаковое имя guid и т. д. на всех сайтах.
Примечание:
У нас также были проблемы с межсайтовыми запросами после добавления полей вручную. В коде запроса есть некоторые ошибки (я полагаю, что он исправлен в стеке MS), что означает, что он основан на полях, определенных в определенном порядке в базовых таблицах.