最近,我必须开发一个 SharePoint 工作流程,老实说,我发现这是我曾经处理过的最痛苦的编程任务。我遇到的一个大问题是当我必须在调试器中单步执行它时遇到的问题。

有一篇关于如何调试 SharePoint 工作流的文章 这里 它告诉你如何设置断点等。这涉及将 .pdb 文件与包含工作流程的 .dll 文件一起复制到 GAC 中。您必须从命令提示符(或批处理文件)执行此操作,因为 Windows 资源管理器不允许您查看 c:\windows\ assembly 的相关子目录。

但是,如果您这样做,下次您尝试从 Visual Studio 中部署工作流时,它会抱怨无法部署,因为“文件可能未签名”,并且如果您尝试复制新版本的dll 进入 GAC,它会告诉您 .dll 文件已被锁定。

我发现有时,您可以通过执行 iisreset 来解决此问题,但在其他情况下,您必须重新启动 Visual Studio,并且经常出现我什至不得不完全重新启动计算机的情况,因为某些神秘的原因进程已锁定文件。另一方面,当我不使用调试器时,一切都工作正常。

有谁知道比这更简单的调试工作流程的方法吗?

有帮助吗?

解决方案

SharePoint 团队目前正在开发 VS 2008 的 MOSS 扩展,它将允许此类功能。这在带有 MOSS 扩展的 VS 2005 中可用,但必须在具有完整 MOSS 安装和正确权限集的 Windows Server 上运行。

其他提示

当我开始使用时,我总体上开发 SharePoint 解决方案(不仅仅是工作流程)的速度要快得多 WSP生成器. 。WSPBuilder 有一个名为 WSPBuilder Extensions 的 Visual Studio 插件,在我看来,WSPBuilder 扩展比臭名昭著的插件做得更好 Windows SharePoint Services 3.0 工具:Visual Studio 2008 扩展,版本 1.2. 。借助 WSPBuilder 菜单,只需单击一下即可部署/升级/卸载解决方案!

真正有帮助的一件事是,SharePoint 团队是否为运行 SP 工作流所需的 SP 特定工作流服务提供了接口。这将允许您模拟这些接口并在 SP 之外运行工作流程。AFAIK,你今天不能这样做。

我个人发现 SharePoint 的开发非常痛苦......不仅仅是工作流程,而是整体。我了解管理方面的胜利和最终用户的生产力,但对于 Joe .NET 开发人员来说,这是一次相当可怕的体验。

至于加快 IIS 重置速度,Andrew Connell 也提供了一些提示http://www.andrewconnell.com/blog/archive/2006/08/21/3882.aspx

这使我的 IIS 重置时间从 10 多秒缩短到不到 2 秒。

我不确定您是否需要将 pdb 文件放入 GAC 中。(至少,我将要描述的修复对于在 VS2005 中调试 SharePoint Web 部件来说效果很好,VS2005 也有类似的问题。)

工具-->选项-->调试中有一个标记为“仅启用我的代码(仅限托管)”的复选框;如果您取消选中它,则 Visual Studio 会很乐意从构建 pdb 的 bin\Debug 文件夹中加载您的 pdb。大概。无论如何,尝试一下也没什么坏处...

查看 标准差值 由 Ted Pattison、Andrew Connell、Scot Hillier 等 SharePoint MVP 在 CodePlex 上提供。

STSDEV 是一个概念验证实用程序应用程序,它演示如何生成 Visual Studio 项目文件和解决方案文件,以促进 SharePoint 2007 平台(包括 Windows SharePoint Services 3.0 (WSS) 和 Microsoft Office SharePoint Server)的模板和组件的开发和部署2007(莫斯)。请注意,当前版本的 stsdev 实用程序仅支持使用 C# 编程语言创建项目。

基思

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top