Team Foundation Server 2010 中的依赖关系管理/团队项目
我试图找到在 TFS 2010 中逻辑上分离项目的最佳方法。目前我们有三个独立的项目:
- 在服务器上运行的核心框架项目
- 引用核心框架 dll 的控制台应用程序。
- 还引用核心框架 dll 的 Web 应用程序。
TFS 将项目划分为团队项目。所有这三个都是真正独立的“项目”,但最后两个依赖于框架 .dll 引用。在 Java 世界中,您可以设置依赖关系管理,其中核心框架将构建并发布到公司的中央存储库,并且可以单独签出客户端项目,并且只需引用存储库中的 dll,这样项目就不会中断。
TFS 是否管理依赖关系?这三个项目应该建立在单独的团队项目中还是同一个项目中?您可以跨团队项目进行构建吗?
设置团队项目的最佳方法是什么,这样可以最大限度地减少依赖性问题,同时也可以对其进行分区,以便可以单独处理它们,并且构建脚本可以访问 CI 的所有项目?
I'm trying to find the best way logically separate projects in TFS 2010. Currently we have three separate projects:
- A core framework project which is run on a server
- A console application that references the core framework dll.
- A web application that also references the core framework dll.
TFS partitions projects into Team Projects. All of these three are really separate "projects", but the last two depend on the framework .dll reference. In the Java world you can set up dependency management where the core framework would build and publish to a central repository in the company and the client projects could be checked out separately and just reference the dll in the repository so no projects would break.
Does TFS manage dependencies? Should these three projects be set up in separate team projects or the same one? Can you build across team projects?
What is the best way to set up team projects so that there are minimal dependency issues, but are also partitioned so that they can be individually worked on and build scripts can access all projects for CI?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
TFS 在管理依赖项方面相当薄弱,但如果您愿意使用单个解决方案文件,则可以使用以下方法在解决方案之间合理共享项目:
文件->源代码管理->从源代码管理添加项目...
这样,当您获得解决方案时,您也可以获得它的所有项目。
缺点是您每次都必须拉取和构建所有内容。
不幸的是,在我们这里,这在几乎每个级别上都受到了太多限制,我们必须建立自己的工具来提供预构建的库和依赖项管理。
TFS is pretty weak when it comes to managing dependencies, but if you're happy to live in a single solution file, you can share project between solutions reasonable well by using:
File->Source Control->Add Project from Source Control...
This way, when you get a solution, you get all it's projects as well.
The downside is that you will have to pull and build everything every time.
Unfortunately, at our place, this was too limiting on just about every level and we've had to set up our own tooling to provide prebuilt libraries and dependency management.
为什么 TFS 中还需要依赖管理?
您应该对共享程序集进行强签名并驻留在 GAC 中,这样您就不会首先遇到版本控制问题。
Why do you even need dependency management in TFS?
You should have your shared assembly strongly signed and resided in GAC so that you do not have a versioning problem in the first place.
TFS 团队项目与您所理解的软件项目/解决方案无法相提并论。基本上,团队项目是一个容器,用于容纳一堆您想要放在一起的东西。
因此,我认为就您的情况而言,最好为您上面提到的所有三个软件项目建立一个团队项目。它们显然是相互依赖的,无论如何都必须一起维护。
对于 CI,您可以单独或一次性访问每个软件项目,您可以做对您最有用的事情。
HTH。
托马斯
TFS Team projects are not comparable to what you may understand as a software project/solution. Basically a Team project is a container for a bunch of stuff that you want to keep together.
So I think it's best in your case to have one team project for all the three software projects you mention above. They obviously are interdependent and have to be maintained together anyway.
Regarding CI, you can access each software project on it's own or all in one go, you can do whatever is most useful for you.
HTH.
Thomas