如何通过Visual Studio调试Sharepoint解决方案/功能?

时间:2010-04-05 21:08:41

标签: visual-studio sharepoint debugging moss

最近我尝试通过wspbuilder实用程序将一个webpart安装到Sharepoint站点。我已经为12个蜂巢创建,构建和部署了一个项目。之后通过Cental管理站点安装解决方案并在网站集中激活。

我只是想知道如何调试复杂的功能/解决方案?因为这两个进程(构建 - 部署和激活)完全独立,所以如何使用工作进程附加进程?

5 个答案:

答案 0 :(得分:3)

在WSPBuilder上下文菜单中,有一个选项“附加到IIS工作进程”。只要加载了应用程序(通常意味着您在尝试连接之前访问了SharePoint网站中的页面)并且SharePoint中部署的代码与Visual Studio中的代码相同,您应该能够设置断点并逐步完成代码。

答案 1 :(得分:2)

首先,您需要打开浏览器并导航到相关的SharePoint网站。然后,在Visual Studio中,转到Debug - >附加到Process,找到与要调试的Sharepoint网站关联的w3wp.exe进程。单击它(该过程),然后单击“附加”按钮。您现在应该能够调试与SharePoint功能相关的任何活动。

答案 2 :(得分:2)

有时候确定要附加哪个w3wp进程有点痛苦。尝试将以下内容添加到代码中以进入调试器:

System.Diagnostics.Debugger.Break();

答案 3 :(得分:1)

System.Diagnostics.Debugger.Break()
像Muhimbi建议的那样,这在某些情况下实际上非常有用。假设您想要使用stsadm而不是浏览器调用自定义代码(例如feature_deactivating事件)。 (例如,当在UI中隐藏功能时,您将不得不使用stsadm来停用功能)。使用stsadm时,无法附加到cmd.exe,因为这是一个单独的进程。如果键入命令并按Enter键然后找到要附加的stsadm.exe进程的id,则为时已晚。在这种情况下,上面的命令是最简单和最好的解决方案

答案 4 :(得分:1)

我尝试了这里提到的步骤

  

转到Debug - >附加到Process,找到与要调试的Sharepoint网站关联的w3wp.exe进程

但是我得到“断点不会被击中,此文档当前没有加载任何符号”。我是否应该使用GACUTIL注册自定义部署的解决方案?我是否必须在任何特定位置复制PDB文件? 我在这里缺少什么?