我有一个奇怪的问题:
我使用PowerShell
部署了包含内容和网站模板的WSP包Add-SPSolution ...
Install-SPSolution ...
现在尝试创建新的网站集时,我的模板可见,我可以使用我的模板创建新的网站集。
当我尝试在与之前相同的会话中使用PowerShell(Get-SPWebTemplate
)查看所有已安装的网站模板时,新模板不会出现!
反过来也是如此:当撤回/删除解决方案时,我不能再使用模板创建新的网站集,因为它已经消失了。但是在仍然打开的PowerShell会话中,模板仍然可见。
唯一的解决方案:在收回/部署解决方案后打开一个新的PowerShell会话 - 仅在此“新鲜”会话中,更改才会同步。
我的问题是:如何清除此PowerShell缓存?如何直接从服务器而不是从某个缓存中获取网站模板列表?
其他一些人也提出关闭/重新打开PowerShell(PowerShell caching leads to head-banging) - 这不是解决方案......
免责声明:Cross post from "How to clear PowerShell Object Model Cache"。
答案 0 :(得分:4)
原来,PowerShell 实际上缓存了某些内容,特别是OWSSVR.DLL
。
有两种(和½)方法可以克服这个问题:
我使用方法2½(表示为3),因为它是使用单线程stsadm而不是调用另一个PS会话的最简单方法。
答案 1 :(得分:0)
我无法从这里查看,但它可能与当前“分配集合”中缓存的网站有关。查看Start-和Stop-SPAssignment命令。我不确定默认的赋值模型是什么,但是我尝试运行“Stop-SPAssignment; Start-SPAssignment”来查看是否会处理当前用于检索模板的缓存SPWeb。
-Oisin