Version control 如何处理不同的csproj

Version control 如何处理不同的csproj,version-control,project-management,Version Control,Project Management,我在一个五人小组工作。我们正在开发一个C#应用程序,其中包含五个CSP项目 问题是,对于每个csproject,我的每个同事都有自己关于如何引用DLL的想法;一些人希望通过项目引用链接,另一些人希望只链接DLL。所以我们每个人都有自己的csproject 我希望他们所有人都检查他们的csproject;但是考虑到csproject的每个副本都是不同的,所以实际上并没有一个可行的机制来做到这一点,是吗?但如果我不要求他们签入他们的csproject,那么每次他们添加新文件时,我都必须手动编辑我的c

我在一个五人小组工作。我们正在开发一个C#应用程序,其中包含五个CSP项目

问题是,对于每个csproject,我的每个同事都有自己关于如何引用DLL的想法;一些人希望通过项目引用链接,另一些人希望只链接DLL。所以我们每个人都有自己的csproject

我希望他们所有人都检查他们的csproject;但是考虑到csproject的每个副本都是不同的,所以实际上并没有一个可行的机制来做到这一点,是吗?但如果我不要求他们签入他们的csproject,那么每次他们添加新文件时,我都必须手动编辑我的csproject,这非常繁琐,更不用说它超出了持续集成的目的

有什么应对策略吗我知道最好强制执行一个标准,但有没有其他选择将此放在一边?

每个人的csproject内容都不同,这是有原因的;不是每个人都有五个CSproject,也不是每个人都能有五个CSproject。因此,不可避免地,有些人最终不得不引用DLL而不是项目,有些人希望通过项目引用以便于调试。如果我要执行一个标准,正如这里的答案所示,我必须解决这个问题


至于为什么我们需要拆分成多个CSproject,那是因为我们想为其他应用程序重用部分代码,而且不是每个人都可以访问源代码。这更像是政治问题而不是技术问题。

你的问题不是如何用源代码控制来处理它

您的问题是您(或管理层)需要让您的团队采用整个团队都遵循的一套标准


如果你让每个人都按照他们自己的想法乱七八糟地去做,而不在基础上获得团队凝聚力,那只会以眼泪告终……

你的问题不在于如何用源代码管理来处理它

您的问题是您(或管理层)需要让您的团队采用整个团队都遵循的一套标准


如果你让每个人都按照他们自己的想法乱七八糟地去做,而不在基础上获得团队凝聚力,那只会以眼泪告终……

你几乎肯定解决了错误的问题。如果您使用.csproj文件来满足用户的偏好,那么您将承担额外的工作并引入错误的可能性,原因正是您所描述的——每次Alice向Alicex.csproj添加文件时,Bob都必须了解这一点,并将相同的文件添加到BobsX.csproj

<>你真的需要考虑这是一个标准和团队动态的问题:同意DLL如何在主源中引用,并要求每个人都坚持这一点。如果“失败”一方不喜欢这样做,当然,他们可以在自己的私人工作副本中使用自己喜欢的风格。但是你真的只需要一个主资源,并且你想要努力让每个人都按照主资源的方式购买它


根据您的编辑:如果您真的、真的无法与同事达成一致,那么我仍然建议使用单个主控程序,但编写一个小实用程序,异议者可以使用它将项目引用转换为DLL引用(反之亦然)。csproj文件只是XML,所以这是非常简单的。如果您甚至无法就存储库格式达成一致,那么您将需要维护parallel.csproj文件,但我仍然会编写该实用程序,以确保对dllreferencengproj.csproj所做的更改复制到projectreferencengproj.csproj。但我还是要说,你只是在为自己做更多的工作,为自己积累更多的痛苦,而不是在争吵结束后:为了发挥团队的作用,你需要找到一些解决争议的方法,这和任何测试用例一样好。

你几乎肯定解决了错误的问题。如果您使用.csproj文件来满足用户的偏好,那么您将承担额外的工作并引入错误的可能性,原因正是您所描述的——每次Alice向Alicex.csproj添加文件时,Bob都必须了解这一点,并将相同的文件添加到BobsX.csproj

<>你真的需要考虑这是一个标准和团队动态的问题:同意DLL如何在主源中引用,并要求每个人都坚持这一点。如果“失败”一方不喜欢这样做,当然,他们可以在自己的私人工作副本中使用自己喜欢的风格。但是你真的只需要一个主资源,并且你想要努力让每个人都按照主资源的方式购买它


根据您的编辑:如果您真的、真的无法与同事达成一致,那么我仍然建议使用单个主控程序,但编写一个小实用程序,异议者可以使用它将项目引用转换为DLL引用(反之亦然)。csproj文件只是XML,所以这是非常简单的。如果您甚至无法就存储库格式达成一致,那么您将需要维护parallel.csproj文件,但我仍然会编写该实用程序,以确保对dllreferencengproj.csproj所做的更改复制到projectreferencengproj.csproj。但我还是要说,你只是在为自己做更多的工作,为自己积累更多的痛苦,而不是在争吵结束后:为了发挥团队的作用,你需要找到一些解决争议的方法,这和任何测试案例一样好。

是时候让每个人都长大并遵循一个标准了。如果您都在使用相同的代码,那么您应该一起决定引用dll还是项目是最好的,然后坚持使用它。一旦你们搞清楚了这个问题,你们就可以决定是缩进2个还是4个空格,还是一个制表符。然后决定是将花括号放在函数声明符的同一行上,还是放在函数声明符后的下一行上