升级SharePoint Web部件

时间:2009-08-04 18:13:39

标签: sharepoint sharepoint-2007 sharepoint-deployment

我有几个自定义Web部件,我正在部署到生产过程中。在这个过程中,我发现了一些需要在各个部分进行调整的小事。要部署新代码,我创建一个新的解决方案包,停用然后删除功能,收回然后删除解决方案,然后使用新包以相反的顺序再次执行。不用说,这可能是耗时的。是否有必要完全删除Web部件以进行升级,或者是否可以升级Web部件/功能/解决方案?

4 个答案:

答案 0 :(得分:2)

这取决于解决方案的确切变化。有一个专门用于升级解决方案的stsadm操作,但它有一些限制,特别是删除旧功能和添加新功能。但是,如果webpart DLL中存在所有新功能,则运行解决方案升级将部署您的更改,而无需您进一步执行任何操作。

http://msdn.microsoft.com/en-us/library/aa543659.aspx

答案 1 :(得分:0)

我们使用Windows SharePoint Services 3.0,v1.3 - 2009年3月CTP的Visual Studio 2008扩展。它给了我们一些问题,但是当你习惯它并确保你按照正确的顺序做事时它会起作用。

http://www.microsoft.com/downloads/details.aspx?FamilyID=FB9D4B85-DA2A-432E-91FB-D505199C49F6&displaylang=en

此工具可自动执行retact / delete / deploy / activate .... job。

我们尝试做的另一件事是尽可能少地保留Web部件中的功能。将可以移动的内容移动到单独的dll中,然后通常可以通过复制新版本的dll进行升级。

答案 2 :(得分:0)

如果您对网页部件进行了细微更改,那么您只需更换DLL的,如果程序集版本保持不变。

当然,在这里使用一些关于什么是微小变化的自由裁量权,不会破坏任何东西。

请参阅此主题了解how to use FileVersion and AssemblyVersion correctly

基本上,当FileVersion随着编译而改变时,你对AssemblyVersion保持相同的次要更新。

这正是微软用Microsoft.SharePoint.dll这样做的方式 - AssemblyVersion固定为12.0。而FileVersion随每个修补程序/服务包一起更改。

哦 - 我刚刚阅读了你的答案的“生产部分”,这个快捷方式可能更适合开发/测试,而不是QA /生产

答案 3 :(得分:0)

使用此

stsadm -o upgradesolution -name "WSPName.wsp" -filename "c:/WSPName.wsp" -immediate -allowgacdeployment -allowcaspolicies

然后运行sharepoint作业

stsadm -o execadmsvcjobs

另一方面,您可以使用SharePoint PowerShell命令

更新dll
Set-location "C:\Users\Documents\WSP" 
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")            
$publish = New-Object System.EnterpriseServices.Internal.Publish            
$publish.GacInstall("C:\Users\Documents\WSP\wspcustom.dll")