2009-08-04 90 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")