2009-08-04 104 views
1

我有几个自定义Web部件,我正在部署到生产过程中。在这个过程中,我发现了一些需要在各个部分中调整的小事情。要部署新代码,我创建了一个新的解决方案包,取消激活然后删除功能,撤消然后删除解决方案,然后以新包的相反顺序重新执行。不用说,这可能是耗时的。是否需要彻底删除Web部件才能升级它,或者是否可以升级Web部件/功能部件/解决方案?升级SharePoint Web部件

回答

2

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

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

+0

stsadm -o upgradesolution是我一直在寻找。我已经读过它的警告,但这些都不适用于我眼前的情况,所以我可以安全地使用它。 – 2009-08-06 19:42:46

0

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

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

这个工具可实现的retact /删除/配置/激活....工作。

我们尝试做的另一件事是尽可能少地保留Web部件的功能。移动可以移动到单独的dll的东西,然后经常可以通过应对新版本的dll来升级。

0

如果进行小的改动你的Web部件,那么你只需更换DLL的如果程序集的版本是一样的。

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

请参阅how to use FileVersion and AssemblyVersion correctly的相关主题。

基本上,当FileVersion随编译发生变化时,保持AssemblyVersion与次要更新相同。

这正是Microsoft如何处理Microsoft.SharePoint.dll这样的事情 - AssemblyVersion固定在12.0。而FileVersion随每个修补程序/ Service Pack更改。

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

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")