如何阻止 ResXManager 在清理解决方案时生成配置 XML?
结论
这一现象符合 ResXManager 将解决方案配置迁移到独立 XML 文件的行为。在已核对的配置保存实现中,没有发现关闭文件生成并继续将配置保存在 .sln 中的开关。如果要继续使用该扩展并保留解决方案专属配置,可以保留 ResXManager.config.xml。配置保存源码
如果要求磁盘上完全不生成该文件,可以先禁用 ResXManager 并重启 Visual Studio,再验证清理操作是否仍会创建它。禁用期间无法使用扩展功能。
为什么配置会从 .sln 移到 XML?
官方更新记录提到了从 solution globals 向文件迁移配置的逻辑。当前源码也使用解决方案目录下的 ResXManager.config.xml 保存解决方案配置。官方更新记录、配置保存源码
题目中的配置在迁移前后都保留了 de-DE,只是存储位置变了:
RESX_NeutralResourcesLanguage = de-DE
对应新文件中的:
<Value Key="NeutralResourcesLanguage">de-DE</Value>
仅凭这些变化,无法确定迁移为什么恰好发生在执行 Clean 时,也无法判断它是否在每次清理时都会重新执行。题目没有提供扩展版本和运行日志,不能直接将其归因于 Clean。
如何处理?
需要团队共享配置:保留文件
确认生成的 XML 中仍是所需的 de-DE,然后将配置文件纳入版本控制。不要反复删除 XML 并把旧配置行写回 .sln,否则后续加载或保存配置时仍可能再次触发迁移。
保存解决方案、重启 Visual Studio 后,再执行一次 Clean,检查配置内容是否仍有变化。如果迁移完成后文件保持稳定,就可以保留这次配置变更。
只是不希望 Git 显示新文件:添加忽略规则
如果配置只供本机使用,且文件位于仓库根目录,可以在 .gitignore 中添加:
/ResXManager.config.xml
这只能让 Git 忽略尚未跟踪的文件,无法阻止 ResXManager 创建或写入它。如果文件已经被 Git 跟踪,单独添加忽略规则不会生效。忽略后,其他开发者也不会通过仓库获得这份配置。
必须阻止生成:禁用扩展后对照验证
- 备份
.sln和生成的 XML 文件。 - 在 Visual Studio 的扩展管理器中禁用 ResXManager,并重启 Visual Studio。
- 移走生成的 XML,再次执行 Clean。
- 检查 XML 是否重新出现,以及
.sln是否仍被修改。
如果禁用后现象消失,就进一步支持扩展参与了这些文件变更的判断。如果现象仍然出现,应继续检查其他扩展、构建脚本或自定义清理目标。
注意事项
将 XML 设为只读无法关闭配置保存逻辑。源码仍会尝试写入文件,并在失败时记录错误,因此不建议将只读作为正常处理方式。配置保存源码
如果必须同时满足“继续使用 ResXManager”和“不创建解决方案配置文件”,还需要确认已安装版本是否有专门支持。现有依据不足以给出一个保证有效的设置项。
备注:内容仅供参考。
