Resources.Designer.cs应该受源代码控制吗?

时间:2010-02-04 14:33:34

标签: visual-studio resx

我有Resources.resx,用于生成Resources.designer.cs。是否应该检入Resources.designer.cs,或者我可以依赖Visual Studio在需要时生成它吗?

3 个答案:

答案 0 :(得分:15)

我的偏好是:如果它被构建系统修改,请确保构建过程将创建它并且不进行检查。

对于像'designer'这样的自动生成的文件,我会检查它们。它们只会在其他组件发生变化时被修改(由我)。它由VS生成,不会被构建系统修改。

答案 1 :(得分:7)

我遇到了一个我正在遇到的问题的帖子,不太一样,但它帮助我找到了一个临时解决方案。这是我发现可能对你有帮助的......

我正在创建一个简单的字符串资源文件。然后我使用修改后的CodeProject程序将其翻译成外语。 (一旦我们稳定代码,我们将使用专业服务)该实用程序不会创建designer.cs文件。执行重建所有也不会重新创建文件。看来,每次使用外部工具(而不是Visual Studio设计器)修改resx文件时,都会丢失那些同步的更改。在我的例子中,设计器文件仅用于强调字符串到属性名称。如果您使用ID来拉取字符串(古老的方法),那么您根本不需要这些文件,因此不需要将它们检入源控件。但是,如果您使用对这些字符串的强类型访问(更现代的方法),您应该检查它们。

顺便说一句......我确实找到了一种方法来重新同步那些designer.cs文件和他们的resx计数器部分,因为那是我的问题......我需要它们。在解决方案资源管理器中选择resx文件并将 CustomTool 属性设置为 PublicResXFileCodeGenerator 会立即创建designer.cs文件。不幸的是,如果已经设置,则必须取消设置,然后重新设置它以创建文件。 如果有人知道通过一些自动化方式强制重新创建这些的方法......我真的很感激。

感谢。

答案 2 :(得分:2)

我不是100%确定围绕此文件的构建方案。我认为可能是Studio,或者更恰当的是msbuild,每次构建应用程序时都会重新生成文件,但不确定。

无论哪种方式,我仍会检查此文件有几个原因

  1. 这是Visual Studio中大多数源代码控制提供程序的默认设置。他们对这个问题的思考比我想的要困难得多,并且很可能有充分的理由这样做。
  2. 调试:在Resource.Designer.cs中不太可能出现问题,但是如果在附加/调试之前你有被迫构建的问题
  3. 源代码管理应该是您的来源的历史记录。如果您无法看到与您的应用程序相关的所有资源,它会有什么用处。
  4. 第一个原因是最重要的