Развертывание библиотеки документов с файлами
Иногда на проектах, создавая различные фичи, включающие в себя списки/библиотеки, требуется наличие в них (этих списках/библиотеках) первоначальных данных. В этом посте я опишу механизм моего решения данной задачи.
Данные в списке
Что касается списков, то здесь все просто: необходимо только расширить ListInstance, сгенерированный Visual Studio, примерно следующим образом:
Данные в библиотеке
В случае с библиотекой вариант, представленный выше, не работает. В этом случае я поступаю следующим образом:
Создаем ListInstance на основе DocumentLibrary: Теперь добавляем в проект модуль: Кладем в модуль файлы, нас интересующие. Я не стал удалять файл Sample.txt, т.к. он мне не мешает, но при разработке реальных решений вырезать весь этот мусор придется. Получилось у меня вот так:
Связываем Module и ListInstance
Здесь ведущим объектом является ListInstance, а ведомым, соответственно, Module. В файле elements.xml модуля указываем значение атрибута Url равным адресу нашего ListInstance. Также необходимо указать у каждого элемента File нашего модуля атрибут Type со значением GhostableInLibrary. Должно получиться примерно вот так:
Не забываем положить элементы в фичу и можно пользоваться.