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

如何避免主项目调用引用DLL中的同名resx资源文件

问题原因

你的问题核心是两个项目的SetUp资源类产生了调用冲突,常见触发原因有3种:

  • 两个项目的SetUp资源类处于完全相同的命名空间下,Tester项目代码中调用Configurations.SetUp时,编译器优先绑定了Coder程序集中的同名类
  • 访问浏览器配置的Browsers函数定义在Coder项目内部,该函数默认调用的是Coder自身的SetUp资源类,Tester调用这个函数时自然拿到Coder的配置
  • Tester项目的SetUp.resx配置错误:生成操作不是「嵌入的资源」,或者自动生成的SetUp.Designer.cs中资源路径和实际嵌入的资源名不匹配,导致ResourceManager找不到Tester自身的资源, fallback到了引用的Coder程序集中的同名资源

修复方案

1. 解决命名空间冲突

任选一种即可:

  • 给两个项目的SetUp资源类设置不同的命名空间,比如Coder的放到Coder.Configurations下,Tester的放到Tester.Configurations下,调用时写全限定名,Tester中取自身配置写Tester.Configurations.SetUp.Browser
  • 在Tester项目的代码头部加别名引用:using TesterSetUp = TestProject3.Configurations.SetUp;,后续访问自身配置统一用TesterSetUp.Browser

2. 解决函数定义在Coder的问题

如果Browsers函数是Coder项目的公共方法:

  • 把函数改造为支持传入ResourceManager参数,Tester调用时把自身的SetUp.ResourceManager传进去
  • 或者直接在Tester项目单独实现自己的Browsers函数,不调用Coder中的对应方法

3. 检查并修复Tester的resx配置

右键Tester项目中的SetUp.resx文件,打开属性面板,确认以下配置:

  • 生成操作:嵌入的资源
  • 自定义工具:ResXFileCodeGenerator
  • 自定义工具命名空间:和SetUp.Designer.cs中的命名空间保持一致
    配置完成后右键SetUp.resx选择「运行自定义工具」,重新生成Designer.cs文件,确保资源路径正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:54:03