Я работаю над автоматическим сценарием для развертывания проектов sharepoint. Я использую webtemplate уровня sandbox, который должен применяться при создании сайта. У меня было много неприятностей, потому что похоже, что sharepoint кэширует список webtemplates и get-spwebtemplate не находит новый добавленный. То, как я сделал это работает так:Применение пользовательского webtemplate для sitecollection работает на powershell ise, а не на консоли powershell
[system.reflection.assembly]::LoadWithPartialName("Microsoft.Sharepoint")
$site= new-Object Microsoft.SharePoint.SPSite($web_application_complete_url)
$site.OpenWeb().ApplyWebTemplate($web_template_name)
$site.Dispose()
Как вы можете видеть, я использую .net Sharepoint API вместо командлетов. Это работает сладко в PowerShell ISE, но в консоли PowerShell он вызывает исключение в отношении ссылочного DLL:
Исключение вызывающего «ApplyWebTemplate» с «1» аргумент (ы): «Не удалось загрузить файл или сборку «XXX.SharePoint .Common, Version = 1.0.0.0, Culture = neutral, PublicK eyToken = 534c125b45123456 'или одна из его зависимостей. Система не может найти указанный файл e. " В C: \ сборки \ SharePointBuild.p s1: 318 голец: 37 + $ site.OpenWeb() ApplyWebTemplate < < < < ($ web_template_name) + CategoryInfo:. NotSpecified: (:) [], ParentContainsErrorRecordE xception + FullyQualifiedErrorId: DotNetMethodException
Сборка отлично зарегистрирована в GAC при установке решения для песочницы веб-шаблона в sitecollection.
Любые идеи? благодаря!
Спасибо за ваш ответ! Поскольку у меня есть как 64, так и x86 исполняемые файлы powershell, я думаю, что оба работают на 64 бит. Я попробовал параметр -sta при открытии powershell, и он не работает. Тем не менее, я попробую свой путь – ivos
... и это не сработало :( – ivos
В этом случае вы можете попробовать использовать инструмент fuslogvw.exe из Windows SDK. Он отобразит больше информации о сбоях загрузки сборок. в разделе справки по использованию этого инструмента: http://msdn.microsoft.com/en-us/library/e74a18c4%28VS.71%29.aspx –