如何在源代码管理下管理VS .designer文件中的运行时版本更改?

时间:2014-02-07 04:52:29

标签: .net visual-studio version-control

Visual Studio中的许多自动生成的.Designer文件都包含如下所示的样板文件。

'------------------------------------------------------------------------------
' <auto-generated>
'     This code was generated by a tool.
'     Runtime Version:4.0.30319.18052
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------

默认情况下,我们始终将这些设计器文件检查到源代码管理中。结果与Microsoft's recommendation一致:“自定义工具在设计时运行,而不是在构建时运行,因此需要将依赖文件检入源代码控制”。不幸的是,大多数SO问题询问是否应该检查这些设计器文件(for example)并忽略不断变化的运行时版本的问题,它会对源代码控制产生影响。

Dan Brackett在this question中触及了这个问题,只有他的问题是针对将所有开发人员同步到同一版本的解决方案。这似乎是一项令人生畏的任务,特别是正如参考问题的响应者所指出的那样,承包商参与其中。有趣的是,Dan还评论说这不再是VS 2010中的一个问题。但是,它似乎是VS 2012中的一个问题。也许有一个配置值可以将其关闭?

当多个具有不同.Net版本的开发人员使用更新的运行时版本签入这些自动生成的文件时,这是一个挑战。这为他们修复了它,但随后其他开发人员显示了过时/更改过的文件。

一种选择是允许文件保持过时而不检查更改,但这使开发人员难以信任项目或文件的源控制状态。

另一个选择是使用您的源代码管理软件忽略它们,但这些文件确实合法地更改并忽略它们可能会丢失重要更新或错过将有效更改重新签入存储库。

我们还有其他选择吗?

更新:为了进一步澄清,我们希望开发人员针对不同的.Net版本,例如3.5 vs 4.0。我们关心的不是版本的“4.0.30319”部分,它是在最后一个维护段中,随着Windows和Visual Studio的自动更新而改变。

1 个答案:

答案 0 :(得分:0)

就像老笑话说的那样,“不要那个!”

处理相同代码的每个人都必须针对相同的.NET版本。这是根据每个项目选择的。这不是偶然的 - 你没有得到你的开发者正在运行的任何版本的.NET。

您没有找到任何关于此的讨论,因为它不是问题。请记住,自.NET 1.0以来它已成为一个非问题 - 十多年前。