在CodePlex上发现了一个很好的Solution,可以对Lookup字段进行过滤
下载下来之后是一个wsp文件:Dev4Side.SP2010.FilteredLookup.wsp
经验总结:
需要用管理员权限
需要启动SharePoint 2010 Administration服务
如果用stsadm,所需命令如下:
stsadm -o addsolution -filename d:\Sharepoint\Dev4Side.SP2010.FilteredLookup.wsp
stsadm -o deploysolution -name Dev4Side.SP2010.FilteredLookup.wsp -allowgacdeployment -immediate
stsadm -o deploysolution -name Dev4Side.SP2010.FilteredLookup.wsp -allowgacdeployment -immediate
如果用Powershell,所需命令如下:
Add-PSSnapin Microsoft.SharePoint.Powershell (如果直接用SharePoint 2010 Management Shell [开始菜单],这步可省略)
Add-SPSolution -LiteralPath d:\Sharepoint\Dev4Side.SP2010.FilteredLookup.wsp
Install-SPSolution -Identity dev4side.sp2010.filteredlookup.wsp -GACDeployment -Force
如果希望只在某个WebApplication上部署,可以加上-WebApplication 参数,这个参数的值可以是WebApplication的GUID或者WebApplication的名字,要想获取WebApplication的名字和ID, 可通过执行Get-SPWebApplication得到
例如
Install-SPSolution -Identity dev4side.sp2010.filteredlookup.wsp -WebApplication "xxxx - 80" -GACDeployment -Force
-----------------------------------------------
开始试图用SiteCollection Administrator进行上传、激活,上传后无法激活成功,提示只能在Farm级别激活
于是远程桌面连接到服务器来部署这个wsp。
众所周知,有两种方式来做这个事情:stsadm.exe或者Powershell脚本
首先用Powershell,2010引入的高级方法。
当运行第一个命令的时候就出错了
Add-PSSnapin Microsoft.SharePoint.Powershell
以为系统安装的问题,于是转为采用stsadm.exe
stsadm -o addsolution -filename d:\Dev4Side.SP2010.FilteredLookup.wsp
还是有错误,提示Access denied. 于是忽然意识到,需要用管理员权限来做这个事
Run as Administrator,果然好用
stsadm -o addsolution -filename d:\Dev4Side.SP2010.FilteredLookup.wsp
安装成功后,部署的时候又出问题了,提示这个错误:Admin SVC must be running in order to create deployment timer job
Google之后得到解决方案,需要启动SharePoint 2010 Administration服务
服务启动完之后,再执行 Install-SPSolution -Identity dev4side.sp2010.filteredlookup.wsp -GACDeployment
结果又有错误:Install-SPSolution : A deployment or retraction is already under way for
sp", and only one deployment or retraction at a time is supported.
sp", and only one deployment or retraction at a time is supported.
再Google, 得到解决方案:
运行 Central Administration ,Check job status -> Job Definitions
查找和Solution相关的Timer Job,果然找到一个OneTime的job,点开改job定义,在浏览器抵制栏中得到Timer Job ID
执行
stsadm -o canceldeployment -id 8d1aef38-5237-4824-8335-1b7d602e7eea
然后再运行,Install-SPSolution -Identity dev4side.sp2010.filteredlookup.wsp -GACDeployment,终于成功部署了。
所有和Solution相关的命令
http://www.cnblogs.com/mybi/archive/2011/04/07/2008058.html