You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一解决方案的C#与VB.NET项目间共享*.resx文件?

跨语言(C#/VB.NET)共享Resx文件的正确处理方式

你的临时方案是可行的

你在C#项目里把链接的resx访问修饰符设为internal并生成designer.cs的做法完全没问题——核心原因很简单:VB.NET的designer.vb是VB语法的代码文件,C#项目根本没法编译VB代码,所以必须生成C#自己的设计器文件,这是跨语言共享resx的必经之路。

更规范的跨语言共享流程

  • 主resx文件放在VB.NET项目中,保持访问修饰符为public,让它生成public的designer.vb,供其他VB.NET项目直接链接resx+designer.vb使用,这部分你已经做对了。
  • 对于C#项目:
    1. 只链接主项目的Shared.resx文件,不要尝试链接VB的designer.vb。
    2. 在C#项目中选中这个链接的resx文件,打开属性面板:
      • 确保“自定义工具”设置为ResXFileCodeGenerator(这是VS自动生成设计器文件的默认工具)。
      • 根据需求设置“访问修饰符”:如果C#项目只内部使用资源,设internal完全合理;如果需要给解决方案里的其他C#项目共享,就改成public。
    3. 保存设置后,VS会自动生成C#版本的designer.cs文件,后续主resx的修改会同步更新C#项目的设计器文件。

关键注意事项

  • 永远不要手动修改自动生成的designer.vb或designer.cs,每次resx内容更新时,VS会重新覆盖这些文件。
  • 所有链接的resx文件,“复制到输出目录”建议设为“不复制”,避免多个项目重复输出相同资源文件导致冲突。
  • 如果有本地化资源文件(比如Shared.zh-CN.resx),同样只链接resx文件到C#项目,VS会自动处理本地化逻辑。

内容的提问来源于stack exchange,提问作者chriscode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 21:44:49