PAYATHON 2026

如何阻止 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 跟踪,单独添加忽略规则不会生效。忽略后,其他开发者也不会通过仓库获得这份配置。

必须阻止生成:禁用扩展后对照验证

  1. 备份 .sln 和生成的 XML 文件。
  2. 在 Visual Studio 的扩展管理器中禁用 ResXManager,并重启 Visual Studio。
  3. 移走生成的 XML,再次执行 Clean。
  4. 检查 XML 是否重新出现,以及 .sln 是否仍被修改。

如果禁用后现象消失,就进一步支持扩展参与了这些文件变更的判断。如果现象仍然出现,应继续检查其他扩展、构建脚本或自定义清理目标。

注意事项

将 XML 设为只读无法关闭配置保存逻辑。源码仍会尝试写入文件,并在失败时记录错误,因此不建议将只读作为正常处理方式。配置保存源码

如果必须同时满足“继续使用 ResXManager”和“不创建解决方案配置文件”,还需要确认已安装版本是否有专门支持。现有依据不足以给出一个保证有效的设置项。

备注:内容仅供参考。