原帖地址:http://www.danhome.com/Blog/article.asp?id=124(作者::love9)
当然最直接的方法,就是手动部署
把dll放到bin或者gac里 -> 在web.config里写SafeControl -> 在网站集的web部件库中添加进来
命令行部署:通过stsadm工具部署的几种方法
方法一: 2003时代延续的方法
使用cab包将webpart的dll、dwp、manifest.xml打包成一个cab包
使用stsadm -o addwppack 部署
(可以使用stsadm -o enumwppacks浏览这样部署的webpart,
使用stsadm -o deletewppack卸载)
这种方法也可以适用于新的webpart(asp.net的),编写.webpart文件代替.dwp文件
不过需要注意的是这两种文件的格式是不一样的,详细的就不说了,可以在web部件库里打开一个看看就知道了
方法二:moss里对方法一的改进
这个方法我没有试过,不过看起来和方法一是一致的,不过多了一些参数
使用的是stsadm -o deploywppack部署,stsadm -o retractwppack卸载
方法三:通过solution部署
需要编写一个solution用的manifest.xml,和2003时代的那个manifest.xml很像部署webpart的话,需要在里面写上Assemblies和DwpFiles(资源文件的ClassResources是在Assembly里)
其实solution的wsp文件就是cab文件,只不过是换了一个扩展名而已………………
在SDK里有具体的格式说明,不过需要注意的是,sdk在这个地方有一个错误:在DwpFile节中,sdk中说使用FileName属性指定dwp/webpart文件,而实际上,应该使用Location属性替代FileName属性
部署方法(2步):stsadm -o addsolution
stsadm -o deploysolution
卸载方法(2步):stsadm -o retractsolution
stsadm -o deletesolution
方法四:通过solution + feature部署
这是最复杂的一种方法,vs2005扩展包中的webpart模版使用的就是这种方法
它并不是直接将webpart加到solution中,而是将其先加到一个feature中(在feature中包含dwp/webpart,并指定部署到web部件库),然后再把这个feature加到solution中(dll文件还是在solution里指定),部署的时候除了部署solution外,还需要激活那个feature
这种方法比较灵活,可以在页面上通过feature来开启/关闭这个webpart
部署方法(3步):stsadm -o addsolution
stsadm -o deploysolution
stsadm -o activatefeature
卸载方法(4步):stsadm -o deactivatefeature
stsadm -o uninstallfeature
stsadm -o retractsolution
stsadm -o deletesolution
如果是通过vs2005部署的话,我们可以看到在bin\Debug或Release目录中生成wsp文件的同时,还生成了一个setup.bat,通过这个bat,就可以非常方便地完成上述步骤:
部署:setup -i
卸载:setup -u