Вопрос

Поскольку мы не можем сохранить сайт SharePoint (с включенной функцией публикации) в качестве шаблона, я ищу способ сделать это программно:

Сделайте копию "Sitea" с новым именем "SiteB" под одной и той же SiteCollection

http: // spserver/collection/sitea

http: // spserver/collection/siteb

Это было полезно?

Решение

Я думаю, что самый простой способ - сделать экспорт, за которым следует импорт. Это должно работать без повторяющейся проблемы с гидом. PowerShell Cmdlets-это экспорт-SPWEB и Import-Spweb.

Программно, есть эквиваленты к ним в API контента миграции (иногда известный как «Prime»). Они в Microsoft.SharePoint.Deployment пространство имен. Анкет Вы используете Spexport класс для экспорта пакета миграции контента, а затем Spimport сделать импорт.

Есть обзор миграции контента на MSDN. Анкет Не забывайте, что вы также можете использовать API веб -сервисов в качестве программной альтернативы объектной модели.

Другие советы

Решение Rayn (см. Post Comments) привело мне идею запустить PowerShell Cmdlt из моего кода, используя:

System.management.Automation

Collection<String> results = PowerShell.Create().AddScript(Ps).Invoke<String>();

Но у меня все еще есть проблема:

Запуск этого CMD "Get-Process": я получил результат.

Запуск этого CMD "Import -Spweb -Identity http: // spserver/colla/sitea -Path C: bkp file.cmp ":

The term 'Import-SPWeb' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Запуск второго CMD в окне PowerShell не вызывает проблем, и я импортировал свой сайт.

Решение :

string BkpFile = @"C:\File.cmp";
string Url = "http://SPServer/CollA/SiteA";
string PsImport = "Import-SPWeb –Identity " + Url + " -Path " + BkpFile;
string PsPssnaping = "Add-PSSnapin Microsoft.SharePoint.PowerShell";

PowerShell ps = PowerShell.Create();

ps.AddScript(PsPssnaping);
ps.AddScript(PsImport);
ps.Invoke();

Нет ли возможности дублировать нынешний рабочий сайт с другим именем? Причина, по которой я хотел бы внести изменения в наш сайт Prod и хотел бы проверить изменения на тестовом сайте, для которых мне нужно было бы воспроизвести наш сайт Prod ..

Спасибо

Есть причина, по которой Microsoft ограничила это, и они не ясны по этому поводу, я столкнулся с той же проблемой и обнаружил, что

-> Это проблема с кешем объектов, поскольку он использует одни и те же гииды

Один обходной путь для создания копии в одном и том же веб -приложении - это восстановить коллекцию сайтов в различный контент DBS (например, создайте текущий контент DB в автономном режиме, добавьте новый контент DB и Restore), я не проверял это должным образом, но я думаю, что кеш объектов Проблемы будут там.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top