最近我不得不开发一个SharePoint工作流程,而且我发现这段经历非常诚实,这是我曾经遇到的最痛苦的编程任务。我遇到的一个大问题是当我不得不在调试器中单步执行时遇到的问题。
有一篇关于如何调试SharePoint工作流here的文章,它告诉您如何设置断点等。这涉及将.pdb文件与包含工作流的.dll文件一起复制到GAC中。您必须从命令提示符(或批处理文件)执行此操作,因为Windows资源管理器不允许您查看c:\ windows \ assembly的相关子目录。
但是,如果执行此操作,则下次尝试从Visual Studio中部署工作流时,会抱怨无法部署它,因为“文件可能未签名”并且您尝试复制新文件进入GAC的dll版本,它告诉你.dll文件被锁定。
我发现在某些时候,你可以通过做iisreset来解决这个问题,但在其他情况下你必须重新启动Visual Studio,而且我经常需要完全重启计算机因为一些神秘的过程已经锁定了文件。另一方面,当我不使用调试器时,一切正常。
有没有人知道调试工作流程的简单方法呢?
答案 0 :(得分:4)
当我开始使用WSPBuilder时,我在开发一般的SharePoint解决方案(不仅仅是工作流程)方面得到了更快的速度。 WSPBuilder有一个名为WSPBuilder Extensions的Visual Studio Addin,在我看来,WSPBuilder Extensions比臭名昭着的Windows SharePoint Services 3.0 Tools: Visual Studio 2008 Extensions, Version 1.2做得更好。感谢WSPBuilder菜单只需单击一下即可部署/升级/卸载解决方案!
答案 1 :(得分:2)
SharePoint团队目前正致力于VS 2008的MOSS扩展,它将允许此类功能。这在VS 2005中可用,带有MOSS扩展,但必须在Windows Server上运行,并安装完整的MOSS并设置正确的权限。
答案 2 :(得分:2)
如果SharePoint团队为运行SP工作流所需的SP特定工作流服务提供了接口,那么真正有用的一件事就是。这将允许您模拟这些接口并在SP之外运行工作流。 AFAIK,你今天不能这样做。
我个人发现SharePoint非常痛苦,不仅仅是工作流程,而是整体而言。我理解管理胜利和最终用户的工作效率,但对于Joe .NET Developer来说,这是一个相当糟糕的经历。
答案 3 :(得分:1)
至于加速IIS重置,Andrew Connell也有一些提示 http://www.andrewconnell.com/blog/archive/2006/08/21/3882.aspx
这使我的IIS重置时间从10秒以上缩短到不到2秒。
答案 4 :(得分:1)
我不确定您是否需要将pdb文件放入GAC。 (至少,我要描述的修复程序适用于在VS2005中调试SharePoint Web部件,这有类似的问题。)
在工具中有一个标记为“仅启用我的代码(仅管理)”的复选框 - >选项 - >调试;如果你取消选中它,那么Visual Studio将很乐意从你构建它们的bin \ Debug文件夹加载你的pdb。大概。无论如何都不能伤害...
答案 5 :(得分:0)
通过SharePoint MVP(如Ted Pattison,Andrew Connell,Scot Hillier等)查看CodePlex上的STSDev。
STSDEV是一个概念验证实用程序,它演示了如何生成Visual Studio项目文件和解决方案文件,以便于开发和部署SharePoint 2007平台(包括Windows SharePoint Services 3.0(WSS)和Microsoft)的模板和组件Office SharePoint Server 2007(MOSS)。请注意,当前版本的stsdev实用程序仅支持使用C#编程语言创建项目。
基思