Asp.net TFS项目结构使简单的事情变得困难
我的团队目前正在开发一个ASP.NET网站。我们是组织中首批使用TFS2008进行源代码控制的团队之一。当我加入这个项目时,它已经活跃了几个月了。下面是我们在TFS中使用的基本文件结构的示意图:Asp.net TFS项目结构使简单的事情变得困难,asp.net,tfs,project-management,Asp.net,Tfs,Project Management,我的团队目前正在开发一个ASP.NET网站。我们是组织中首批使用TFS2008进行源代码控制的团队之一。当我加入这个项目时,它已经活跃了几个月了。下面是我们在TFS中使用的基本文件结构的示意图: $/TfsProject/ | | /* Contains our in-house class libraries. */ |-- Common/ | | | |-- Extensions/ | | |-- Extensions.csproj | | | |-- Logge
$/TfsProject/
|
| /* Contains our in-house class libraries. */
|-- Common/
| |
| |-- Extensions/
| | |-- Extensions.csproj
| |
| |-- Loggers/
| |-- Loggers.csproj
|
| /* Contains third-party libraries. */
|-- Library/
| |
| |-- EnterpriseLibrary/
| |
| |-- v4.1/
| |-- Microsoft.Practices.EnterpriseLibrary.Common.dll
|
| /* Contains the website itself. */
|-- Site/
|
|-- Packages/
| |-- Packages.csproj
|
|-- Website.root/
|
|-- Website/
|-- Website.sln
|
|-- Website/
| |-- Website.csproj
| |-- Default.aspx
|
|-- WebsiteUnitTests/
| |-- WebsiteUnitTests.csproj
|
|-- WebsiteWebControls/
| |-- WebsiteWebControls.csproj
|
|-- Utilities/
|-- Utilities.csproj
主网站解决方案(website.sln
)目前包含十五个项目(包括图表中显示的每个.csproj
文件)。昨天,我们决定将Common
目录中包含的项目移动到它们自己的解决方案中,我们应该通过引用编译的DLL而不是项目本身将它们包含在网站中。只要更新了一个通用
项目,所有使用该项目的其他项目都应该开始使用最新版本
基于我们当前的层次结构,有没有简单的方法来实现这一点?我已经阅读了指南,但实施其任何建议都需要进行重大更改(以及更新我们的所有项目和解决方案)。此外,我们的组织正在等待TFS2010发布后才能启用团队构建,因此我们无法使用它们。- 一个可行的解决办法是 共同的项目都输出到 同一目录(“C:\temp\dlls”), 而不是每个本地/bin文件夹
- 然后可以将该目录添加到 Web项目解决方案。所有的 应参考DLL 到从TFS中提取的公用文件夹
- 该目录可以作为 文件夹。队里的每个人都会 必须映射文件夹 局部具有相同的相对路径 到解决方案文件
- “最小努力”的地方 这篇文章的重点是文件 必须在以下时间签入/签出 编译。团队的其他成员将 那你就得知道最新消息。最新消息 要求实际上可能更好, 因为你不想强制改变 当你在中间时 发展中
我会说,作为一个整体,你应该重新考虑你的文件夹结构。它不允许非常灵活的分支结构。您似乎正在使用TFS存储库,这与许多VSS用户以往的做法非常相似:将其作为一个版本化的文件系统。同意这两点。如果没有其他内容,请将Common+Library+Site移动到单个父项下。否则,如果不创建一个全新的团队项目,您将永远无法对代码进行分支。我在过去曾提出过分支,但大家一致认为这只会使事情进一步复杂化。分支实际上应该是一个团队和个人的选择,但我理解。对于那些有兴趣这样做的人来说,可以做一些非常小的事情来让分支变得非常容易。团队成员不会受到个人生产力分支的影响。