是否可以在.Net中的不同项目中使用相同的程序集?

时间:2009-12-08 20:14:37

标签: c# .net vb.net development-environment

我很想知道人们如何在大型开发团队中工作。

我自己工作,每次创建一个全新的控件时,我都会创建一个新项目来保存所有相关文件。

我导入了各种常见的帮助程序集,但是大多数情况下,不同的控件都保存在不同的项目中。

我想知道当开发人员在开发System.Windows.Forms时,他们是在同一个项目上工作,还是在某些项目上合并在一起的单独项目。

如果他们以后合并在一起; -

(1)这是怎么做到的?

(2)有没有办法将一个类标记为Public,但是一旦它被合并,就告诉它切换到Friend?

此外,当您来运送特定产品时,是否需要花费大量时间来提取,合并和内化最终产品的类?

顺便说一下,我使用快递版。

4 个答案:

答案 0 :(得分:5)

关键是源代码控制

解决方案中的每个项目在源代码管理中都是独立的。在设置解决方案时,请使用源代码管理系统的链接功能,以便使用特定项目的所有解决方案都返回到同一位置。如果您需要对不同解决方案之间共享的项目进行更改,则该更改将提交回您的存储库,并在继续工作之前在其他解决方案中进行更新。

你永远不想把自己置于合并项目的境地。 Visual Studio解决方案可以包含许多项目。也就是说,您可能希望将各个控件组合在一起,以便类似的项目位于同一个项目中,而不是每个项目只有一个控件。如果您担心将相关文件保存在一起,则可以使用项目内的文件夹。

答案 1 :(得分:3)

我认为这里的问题是“为每个控件创建一个新项目” - 这对我来说听起来不错。以后必须合并是一种痛苦。

无可否认,VS必须列出项目中的文件会让事情变得更糟 - 这意味着源代码控制中经常出现合并点 - 但有数百个微小的项目对我来说不具备可扩展性。

在同一个项目中与其他人一起工作也可能有其缺点,但总的来说,我会说你应该找出逻辑上有意义的代码,并使项目结构 - 不要将你的代码基于你的< em>团队结构,他们恰好在做这项工作。

答案 2 :(得分:1)

当然,此外,我经常会有几个不同的解决方案使用相同的程序集,或者在同一个“解决方案空间”中使用不同的程序集子集。

例如,有一个解决方案将引用的程序集项目作为项目包含在内(因此我可以调试它)和另一个只将它作为引用dll的解决方案,我对调试它没有兴趣。

答案 3 :(得分:0)

我同意这通常是源代码控制的来源,但是如果你真的是单独工作并希望在源代码控制之外的单独项目上开发,那么你总是可以ILMerge相关的程序集。

它非常易于使用,并且可以将人们一起工作的单独程序集合并到一个程序集中,并在命令行上使用一个命令。