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