贡献者是对的,多开发人员单服务器环境有很多绊脚石。
第一个开发人员将尝试附加到同一个 Web 应用程序进程 w2ps.exe,因此必须在不同的端口上创建单独的 Web 应用程序,除非您准备共享时间调试。 如何为 sharepoint 2013 设置开发环境
第二个问题是当您尝试协作和使用共享组件/功能时。独立工作的愿望是值得商榷的,我认为团队开发人员应该协作和共享,因此需要组合工作以确保无缝集成到一个最终解决方案中,并且不会重复任何工作。多开发人员单服务器环境完美运行,直到您尝试协作 '一个常见错误是让所有团队开发人员都使用一个“开发服务器”。除非团队成员正在处理完全不相关的组件并且永远不需要做常见的事情,例如重新启动 IIS 或将调试器附加到 IIS 进程,否则这种类型的环境通常不能很好地工作。http://technet.microsoft.com/en-us/magazine/dn145990.aspx我们因缺乏经验和知识而犯了这个错误,但一旦你犯了这个错误,就有可能解决它。
我第一次分享功能的尝试是将开发人员 1 的项目复制到开发人员 2 的解决方案中,并在开发人员 2 的项目中添加对它的引用,并将所有功能添加到开发人员 2 的包中。部署这对开发人员 2 来说效果很好,直到我发现如果开发人员 1 将他们的解决方案从调试器中分离出来,它会根据农场中重复的解决方案 ID 收回解决方案,因此从每个开发人员的 Web 应用程序中收回。因此,开发人员 2 将地毯从其下方拉出。尽管这是一个部分解决方案并且似乎工作了一段时间,但我花了一段时间才弄清楚发生了什么以及开发 1 和 2 部署的哪些组合使彼此工作而不工作。
所以我找到了一个更好的解决方案。在 SharePoint 选项卡下 Visual Studio 的项目属性下,有一个名为“调试后自动收回”的组合框。默认情况下,当开发人员停止附加的调试器并从其他开发人员的下方拉出功能时,这会收回解决方案。取消选中此框可防止撤回,并使每个开发人员在农场级别部署单独的解决方案,并且在重新连接到调试器时只需用最小的麻烦替换解决方案。
根据我的经验,回收 IIS 应用程序池的速度如此之快,其他开发人员甚至都没有注意到,但是如果团队人数超过 2 人,这可能会变得更加普遍,因此也许其他人可以添加他们的经验。我还猜想,除非其他开发者尝试在回收发生的同一时间附加它会很好,所以随着时间的推移发生交叉的可能性非常小,如果它是简单地分离和重新附加就可以解决这个问题曾经经历过。