SPMeta2 - практика и небольшие хаки - Провизия файлов (Модулей)

Провизия дополнительных файлов (страниц, клиентских скриптов, изображений) в SharePoint - стандартная ситуация. При провизии с использованием CAML (XML) используются модули (Module), а в SPMeta2 используется ModuleFileUtils.LoadModuleFilesFromLocalFolder, которому на вход необходимо подать локальную папку.

Самым удобным способом динамической передачи пути к этим файлам (Assets) , например, для консольного приложения является: Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)

Который возвращает ссылку на папку Debug/Release данного проекта (папка с исполняемым файлом).

Соответственно, прежде чем загружать файлы в SharePoint, эти файлы из структуры проекта, должны оказаться в папке Debug/Release.

Для небольшого кол-ва файлов удобно воспользоваться штатными средствами Visual Studio (правой кнопкой мышки на файле - Properties – Copy to output directory – Copy always)

Данный файлы вместе со структурой автоматически окажутся в папке Debug/Release

Однако, Если же файлов большое кол-во, то самый простой способ - копирование файлов из директории проекта в папку Debug/Release на событии построения проекта

Данная команда копирует файлы из одной директории в другую при каждом событии построения проекта

Далее возможно использование ModuleFileUtils.LoadModuleFilesFromLocalFolder

 

Полностью исходные коды доступны на GitHub одним классом для удобства восприятия примера


Опубликовано: 17.08.2016
Автор: Сергей Снитко