我有 Resources.resx,用于生成 Resources.designer.cs。应该签入 Resources.designer.cs,还是我可以在需要时依靠 Visual Studio 生成它?
3 回答
我的偏好是:如果它被构建系统修改,请确保构建过程将创建它并且不要将其签入。
对于像“设计器”这样的自动生成文件,我将它们签入。它们仅在其他组件(由我)更改时才会被修改。它是由 VS 生成的,而不是由构建系统修改的。
我遇到了你的帖子,遇到了一个我遇到的问题,不太一样,但它帮助我找到了一个临时解决方案。这是我发现的可能对你有帮助的……
我正在创建一个简单的字符串资源文件。然后我使用修改后的 CodeProject 程序将其翻译成外语。(我们将在稳定代码后使用专业服务)该实用程序不会创建 Designer.cs 文件。进行全部重建也没有重新创建文件。看来,每当您使用外部工具(而不是 Visual Studio 设计器)修改 resx 文件时,您都将丢失这些同步更改。在我的情况下,设计器文件仅用于将字符串强输入属性名称。如果您使用 ID 来提取字符串(古老的方法),那么您根本不需要这些文件,因此不需要将它们签入源代码管理。但是,如果您使用对这些字符串的强类型访问(更现代的方法),您应该签入它们。
顺便说一句……我确实找到了一种方法来重新同步这些designer.cs 文件和他们的resx 对应部件,因为那是我的问题……我需要它们。在解决方案资源管理器中选择一个 resx 文件并将CustomTool属性设置为PublicResXFileCodeGenerator会立即创建 Designer.cs 文件。不幸的是,如果它已经设置,您必须取消设置它然后重新设置它以创建文件。如果有人知道通过某种自动化方式强制重新创建这些的方法……我将不胜感激。
谢谢。
我不是 100% 确定围绕这个文件的构建方案。我认为 Studio 或者更恰当的 msbuild 可能会在您每次构建应用程序时重新生成文件,但不确定。
无论哪种方式,出于几个原因,我仍然会签入此文件
- 它是 Visual Studio 中大多数源代码控制提供程序的默认设置。他们对这个问题的思考比我更努力,并且可能有充分的理由这样做
- 调试:Resource.Designer.cs 中不太可能出现问题,但如果出现问题,您将被迫在附加/调试之前进行构建
- 源代码控制应该是您的源代码的历史记录。如果您看不到与您的应用程序相关的所有资源,这有什么好处。
第一个原因是最重要的