Я решил эту проблему, создав новое пользовательское определение сайта с помощью Visual Studio и SharePoint Site Definition. Я добавил функцию, которая добавляет мою собственную мастер-страницу (отредактировано из
v4.master) в галерею главной страницы семейства сайтов (_catalogs / masterpage):
<Module Name="MasterPageModule" RootWebOnly="FALSE" List="116" Url="_catalogs/masterpage" >
<File Url="mymasterpage.master" Path="MasterPageModule\mymasterpage.master" IgnoreIfAlreadyExists="TRUE" Type="GhostableInLibrary">
<Property Name="ContentTypeId" Value="0x010105"/>
</File>
Главное, чтобы получить одинаковую мастер-страницу для всех сайтов, это установить MasterPageFile -property в Default.aspx так:
MasterPageFile = "~ sitecollection / _catalogs / masterpage / mymasterpage.master" - это всегда относится к уровню корневого сбора.
Я думаю, что того же можно добиться с помощью FeatureActivation-метода, но в моем случае это не сработало, не знаю почему.