我正在开发一个用于部署共享点项目的自动化脚本。我正在使用创建站点时必须应用的沙盒级 web 模板。这样做我遇到了很多麻烦,因为似乎 sharepoint 缓存了 webtemplates 列表,而 get-spwebtemplate 找不到新添加的列表。我使它工作的方式是这样的:
[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 而不是 cmdlet。这在 PowerShell ISE 中很有效,但在 PowerShell 控制台中它会引发有关引用的 DLL 的异常:
使用“1”参数调用“ApplyWebTemplate”的异常:“无法加载文件或程序集 'XXX.SharePoint.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=534c125b45123456' 或其依赖项之一。系统找不到指定的文件。” 在 C:\Build\SharePointBuild.p s1:318 char:37 + $site.OpenWeb().ApplyWebTemplate <<<< ($web_template_name) + CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordE xception + FullyQualifiedErrorId : DotNetMethodException
在站点集合中安装 Web 模板沙盒解决方案时,程序集已在 GAC 中完美注册。
有任何想法吗?谢谢!