我正在使用 TFS 源代码管理。
当我向我的资源文件 - Resources.resx 添加一个新的资源 key 并点击保存时,TFS check out Resources.resx 但不 check out Resources.Designer.cs。这会导致对 Resources.Designer.cs 的更新失败并出现错误:
The command you are attempting cannot be completed because the file 'Resources.Designer.cs' that must be modified cannot be changed. If the file is under source control, you may want to check it out; if the file is read-only on disk, you may want to change its attributes.
错误是正确的,因为文件是只读的并且文件未 checkout 。我不想每次添加/编辑资源 key 时都必须手动检查设计器。有人知道解决方案或解决此问题吗?
请注意,我将 TFS 设置为“保存时 checkout ”而不是“编辑时 checkout ”。这是为了减少未经编辑的结账数量。
编辑:
这也发生在其他文件类型中。例如,我正在使用 RazorGenerator创建编译的 MVC View 。如果我尝试编辑 .cshtml 而没有先 checkout .generated.cs,则会出现同样的问题。
更新:
此问题发生在所有(据我所知)具有自动生成代码隐藏的文件上:.resx、.edmx、.aspx、.cshtml(当使用 RazorGenerator 编译 View 时)等。我我已经决定,仅仅为了设置“on edit: do nothing”设置是不值得的。我决定将其重置为“编辑时:自动结帐”。感谢大家的投入。不感谢 TFS 团队的这次失败。
最佳答案
好吧,我不认为这算作答案,所以我在评论中写下了它。 保存时 check out 仅在您保存文件时触发,它不会在自动生成文件时触发(自动生成不会触发进行 check out 的保存,因为此文件是由分配给 resx 的自定义工具编辑的)。
恐怕你不会得到正确的答案(解决你的问题的答案),除了它是设计使然,但可能值得在 connect 上立案。并要求改变这种行为。
关于c# - 编辑 Resources.resx 文件时,Resources.Designer.cs 无法更新,因为 TFS 未将其 checkout ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11428983/