2010-01-12 82 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文件引用了其中的旧版本。我更新了它,再次安装并激活了该功能,现在它正在运行。
感谢您的支持!