2010-01-12 108 views
0

我在我們的開發環境中編寫了一個在SharePoint中的順序工作流程。經過測試,我們決定將此工作流程作爲臨時環境中的一項功能部署。我們做了以下內容:修改已安裝的SharePoint功能

  1. 複製使用GACUTIL

  2. 複製的Feature.xml和workflow.xml到WebServerExtensions/12 /模板/功能/ someFolder

  3. 強名稱程序集到GAC安裝特徵(Stsadm命令)

  4. 啓動部件(Stsadm命令)

所有工作都完全按照計劃進行,工作流正常運行。問題是,我們決定在代碼中改變一些東西(一條消息不是很自我解釋),所以在開發機器上我們根據請求更新了消息並重建了項目。
問題是,我們似乎無法找到正確擺脫此工作流程/功能的以前版本的方法。

要部署的升級,我們:

  1. 停用,卸載的功能(STSADM命令),從GAC也被刪除。

  2. 增加了組件

  3. 執行的步驟1到4從上面的版本。

當使用工作流程時,我們仍然收到第一條消息,但我們無法找到獲取新消息的方式。
我們缺少什麼?

回答

0

所有工作流程邏輯都「在您正在運行的代碼集合中生存」。這意味着您可以從GAC中刪除舊版本的DLL(不要更改程序集版本號,請改爲使用AssemblyFileVersion),並將其替換爲新版本。

但是,請注意,如果您在設計器中更改了工作流程,那麼運行舊工作流程版本的實例將「凍結」並永不完成。請在升級代碼之前讓用戶完成正在運行的WF-s。

+0

我試着只更換dll,(我確定沒有WF運行),但現在WF不再啓動了:「啓動失敗(重試)」。 –

+0

1)它在SharePoint日誌文件(\\ servername \ c $ \ Program Files \ Common Files \ Microsoft Shared \ web server extensions \ 12)中說了些什麼? 2)您是否重新啓動了「Sharepoint Timer Service」(Windows服務)? – naivists

0

看來問題出在Workflow.xml文件中。 因爲我增加了AssemblyFileVersion,並且只有在GAC中替換dll才工作,所以我檢查了兩個xml文件:Feature和Workflow以查看哪個不能識別新的dll(如果是這種情況)。 workflow.xml文件引用了其中的舊版本。我更新了它,再次安裝並激活了該功能,現在它正在運行。
感謝您的支持!