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
Автор: Сергей Снитко